我要用c语言编写一个打开一个txt文件的程序,要将里面的内容准确的显示在命令窗口。

我编写的程序是使用的fread可以一排一排的读取内容,可是出来的是一团乱码!

读文本文件建议用 fgets,它会一行一行的把文件内容读出,下面的作参考!
char buf[128];
FILE *fp = fopen("a.txt", "r");
while(NULL != fgets(buf, 128, fp))
printf("%s", buf);
fclose(fp);追问

我把程序传上来了,可以帮我看看吗?谢谢!

追答

fread也可以,一定是输出时弄错了!fread把内容读到 内存后,输出是需要考虑的问题!
你的buf读满后没有'\0'作字符串结束,所以以%s输出时会产生问题的!你需要保留一位,使其内容恒定为'\0'

#include

int main(void)
{
char buf[128] = {0}; // 这里要都初始化为0
FILE *fp = fopen("a.txt", "r");
while (0 != fread(buf, 1, 127, fp)) // 这里不能读满,最大只能用127
{
printf("%s", buf);
memset(buf, 0, 128); // 这里每次都要清0
}
fclose(fp);
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-11
文件的格式是什么,如果是2进制的文档, 则需要相应的2进制解析代码
相似回答