-2

我的教授给了我们从文本文件中获取输入的代码。问题是它不会为我正确编译。我不确定他(或我)哪里出错了。我没有以任何方式修改他的代码,并且我的 txt 文件与代码位于同一目录中。

#include <stdio.h>
#include <stdlib.h>


int main()
{
     FILE *fp;
     char ch;
     fp = fopen("IronHeelShort.txt", "r");
     printf("Data inside file : ");
     while(1)
     {
         ch = fgetc(fp);
         printf("%c", ch);
         if (ch == EOF)
         break;

     }
     getch();
}
4

2 回答 2

2

ch无论如何都应该是int该函数fgetc()将始终返回一个int, 来处理所有 char 值,并且EOF它是负数。在这里阅读你的文件会在找到 character 时过早结束0xFF

对于编译问题,更改getch()getchar()

于 2014-07-13T17:18:48.153 回答
1
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main()
{
    FILE *fp;
    char ch;
    fp = fopen("C:/emule/c/0.html", "r");
    printf("Data inside file : ");
    while (1)
    {
        ch = fgetc(fp);
        printf("%c", ch);
        if (ch == EOF)
            break;

    }
    _getch();
}

UPD

#include <stdio.h>
#include <stdlib.h>

void main() {
    FILE *input = NULL;
    char c;

    input = fopen("D:/c/text.txt", "rt");
    if (input == NULL) {
        printf("Error opening file");
        scanf("1");
        exit(0);
    }
    while (fscanf(input, "%c", &c) == 1) {
        fprintf(stdout, "%c", c);
    }

    fclose(input);
    scanf("1");
}
于 2014-07-13T17:18:02.500 回答