回复 10楼 TonyDeng
看了你的讲解我又去弄了下。
9528是我手动建立的新文件,9527是程序生成的,里面的内容是一串字符,后来我打开后又修改了下,和9527里的内容一样。下面是我打开文件的程序。#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE * fp;
int i, n;
char a[10], b[100];
printf("Please input a filename:");
scanf("%s", a); // 输入要读的文件名
getchar(); // 吸收回车符
if ((fp = fopen(a, "rt")) == NULL)
{
printf("can not open file\n");
exit(0);
}
for (i = 0; b[i] != '#'; i++)
fscanf(fp,"%c", &b[i]); // 一个字符一个字符的读文件传给b字符数组,遇到#停止
n = i - 1; // 记录读取的个数
for (i = 0; i <= n; i++) // 显示出来
printf("%c", b[i]);
fclose(fp);
return 0;
}
不管我用"r"还是"rt"都能打开9527而打不开9528.
输入d:\file\9527出现以下现象,后面一堆乱码。
输入d:\file\9528 则
还有如果
printf("%c", b[i]); 改成 fprintf(fp,"%c", b[i]); 则输入文件名后没任何反应。
为什么会这样,我读文件的程序错在哪里?
梅尚程荀
马谭杨奚