【发布时间】:2015-02-01 01:50:52
【问题描述】:
我是 C++ 语言的新学生,我无法理解……嗯,坦率地说,很多东西。我被分配了从文本文件中读取文本并将其输出到屏幕的任务,但我遇到了很多麻烦。我已经花了几个小时来研究和测试,这是我到目前为止得到的代码,但它不起作用,我不太确定为什么。任何人愿意与我分享的任何和所有帮助或见解都将非常感激。很抱歉,我不记得我在处理此问题时遇到的所有错误……但我向您保证,其中有很多。就像尝试在我的编译器中使用“fopen”......它不喜欢那样,所以我尝试了它建议的“fopen_s”,但后来它说它不再接受任何参数......然后我发现我需要在程序顶部添加“#define _CRT_SECURE_NO_DEPRECATE”作为头文件(?)文件,这个问题确实得到了解决,程序实际编译了......但是它给了我一个致命错误,不知道我是什么这样做太致命了,但你来了。请帮忙。
#define _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *pf;
char ch;
pf = fopen("C:\\lowerCase\anyOldTextFile.txt", "r");
feof(pf);
if (pf == NULL)
{
printf("Unable to open the file.\n");
}
else
{
while (!feof(pf))
{
ch = fgetc(pf);
printf("%c", ch);
}
fclose(pf);
}
system("pause");
}
【问题讨论】:
-
除了帮助我完成这项工作之外,如果有人受到启发帮助我了解这一切是如何运作的,我将不胜感激。我不知道我真的理解了……很多东西。任何你愿意教我关于语言和/或语言这方面的东西,我都会非常感激。非常感谢。
-
我建议只用谷歌搜索 C++ 文件 IO...这些都不是真正的 C++ 代码。您希望
std::ifstream打开文件并从中读取。 -
这听起来像是 Visual Studio 警告。它们有自己的标准库函数的“更安全”版本,但您可以禁用检查。您应该将定义放在项目设置 > C/C++ > 预处理器 > 预处理器定义中。忽略这一点,您发布的代码会编译。
-
获得一本好的 C++ 书籍。从随机的互联网论坛学习它是没有成效的。那里有很多非常糟糕的建议。
-
“无法打开文件”是可以想象的最无用的错误消息之一。
man perror
标签: c++ io text-files