我试图打开一个文件,我想把第一行安全到一个char数组。当我运行该程序时,窗口弹出窗口,我收到一条错误消息," * .exe停止工作"。在编译之前,我没有得到特定的错误代码或警告。
在控制台中有以下内容:"处理终止,状态为-1073741510(0分钟,3秒(秒)) " 我使用CodeBlocks作为发行版。
这是我的代码:
dateModified
" tipps.txt"的第一行是:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char buffer[60];
FILE* ptr = fopen("tipps.txt", "r");
fgets(buffer, 60, ptr);
for(int i = 0; i < 60; i++){
printf("%s", buffer[i]);
}
return 0;
}
答案 0 :(得分:0)
你应该检查错误,以便能够说明为什么程序没有按照你的预期去做,如果它仍然没有按照你的预期去做那么你检查你的逻辑,如果你仍然无法找到你可以在Stack Overflow上询问。
您的代码的最小错误检查是
char buffer[60];
FILE *file;
file = fopen("tipps.txt", "r");
if (file == NULL) {
fprintf(stderr, "error, cannot open `tipps.txt'\n");
return -1;
}
// Check that `fgets()' did read something, it could fail
// for instance at EOF.
if (fgets(buffer, sizeof(buffer), file) != NULL) {
// Iterate through the characters until we find
// the null terminator.
for (int i = 0; buffer[i] != '\0'; ++i) {
fputc(buffer[i], stdout);
}
}
另外,请仔细阅读每个功能的文档。例如printf()。在该链接中,您可以找到其他人,例如fgets()
,fputc()
和fopen()
。
请注意,一切都很重要,参数的含义以及返回值(如果有)的含义。当您认为自己真正理解该功能时,请在代码中开始使用它。