【发布时间】:2021-12-26 12:47:12
【问题描述】:
我正在尝试读取我附加的文件以及我的程序(源)的位置,但是我抛出了一个异常,我不明白为什么 我的文件有很多没有特殊字符的单词, 非常感谢帮助。
FILE* f;
char c;
f = fopen("dictionary.txt", "rt");
while ((c = fgetc(f)) != EOF) {
printf("%c", c);
}
fclose(f);
她例外 while ((c = fgetc(f)) != EOF) {
调试的信息是
表达式:stream.void() 有关程序如何导致断言失败的信息,请参阅有关断言的 c++ 文档。
【问题讨论】:
-
我预计文件未正确打开。使用前不检查文件指针是否有效。
-
旁白:
char c;应该是int c;,以便您可以区分0xFF和EOF。大多数库函数采用或返回一个“字符”作为int而不是char,实际上例如'A'的类型为int。您可以使用printf("%c", c)或printf("%d", c)(用于字符或其编码),因为传递给%c的char无论如何都会被提升为int(对于可变参数函数)。认为“字符”是char,或者“数字”是int,这是初学者的错误。 -
错误信息表明您使用的是 C++ 而不是 C。
-
如何解决