-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

chintこの関数fgetc()は常に を返し、intすべての char 値を処理し、これはEOF負です。ここで、文字を見つけると、ファイルの読み取りが途中で終了します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 に答える