如何用c语言打开文本文件



在我的文本文件中,有一个随机的二进制数写在a10 x10矩阵。我想在C中打印它们,就像它们在文本文件中出现的那样。所以我的代码是这样的:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
char number[100];
FILE *mz = fopen("maze.txt", "r");
while (!feof(mz)) {
fscanf(mz, "%s", number);
printf("%sn", number);
}
fclose(mz);
}

但输出是100x1矩阵,而不是10x10。打印普通的10x10矩阵应该怎么做?

"%s"不读取

"%s"跳过前导空白,然后读取无限数量的非空白字符。

如果文件输入的中有空格,整行将不会被读取为一个字符串

使用fgets()将一行读入字符串

while (!feof(mz))错误

不要这样做。

如果没有宽度限制,请勿使用"%s"读取

没有宽度的"%s"gets()差。


建议修复

#include <stdio.h>
#define LINE_LENGTH 100
int main(void) {
FILE* mz = fopen("maze.txt", "r");
// Did open succeed?
if (mz) {   
char number[LINE_LENGTH*2];  // Use 2x the max amount expected.
while (fgets(number, sizeof number, mz)) {
printf("%s", number);
}
fclose(mz);
}
}

相关内容

  • 没有找到相关文章

最新更新