【发布时间】:2020-12-26 23:37:44
【问题描述】:
在通过数组从文本文件中读取第一行输入并打印它时,我需要一些帮助。 我的代码现在打印出一个巨大的数字,我不是在寻找它。
我的文本文件:
5
My first cat
csc221
My favorite
我目前的代码:
FILE *myFile;
char ar[1];
myFile = fopen("mcPro1.txt", "r");
fgets(ar,1,myFile);
int x = atoi(ar); //Convert it to a string
printf("%d\n", ar);
fclose(myFile);
【问题讨论】:
-
char a[1]是单个字符。那不能保存任何有用的 C 字符串数据。 -
在什么操作系统上? Linux(和 POSIX)有 mmap(2),对于 small 文件 - 几 GB - 可能更方便(与open(2) 和stat(2) 一起使用;阅读Advanced Linux Programming 和syscalls(2) 了解更多信息)
-
否则,请阅读Modern C,然后阅读this C reference,然后阅读编译器(例如GCC...)和调试器(例如GDB...)的文档
-
在编译器中启用所有警告和调试信息。如果您使用GCC,请使用
gcc -Wall -Wextra -g。你的代码有undefined behavior 因为buffer overflow -
我在 Windows 上使用 Code Block atm。
标签: arrays c string file integer