C语言读文件字符写入数组问题

#include<stdio.h>
void main()
{
char a[500];
int i=0;
FILE *fp;
fp=fopen("d:\\a.txt","r");
if(fp==NULL) {printf("error");exit(0);}
while(!feof(fp)) {a[i]=fgetc(fp);i++;}
a[i+1]='\0';
i=0;
while(a[i]!='\0') {printf("%s",a[i]);i++;}
fclose(fp);
}

我在a.txt中随便打了几个字母几个标点符号,可这程序的运行结果显示的是一行一行的乱七八糟的东西,到底是哪里错了?
2L一语中的啊,好长时间不用C忘了。。另外,问下为什么我笔记本看结果在输出的字符串末尾有一个乱码?

第1个回答  推荐于2016-08-22
#include<stdio.h>
#include<stdlib.h>

void main()
{
char a[500];
int i=0;
FILE *fp;
fp=fopen("input.txt","r");
if(fp==NULL) {printf("error");exit(0);}
while(!feof(fp)) {a[i]=fgetc(fp);i++;}
a[i]='\0'; //i不是i+1
i=0;
while(a[i]!='\0') {printf("%c",a[i]);i++;}//%c不是%s,%s用来输出字符串
fclose(fp);
}本回答被提问者采纳
第2个回答  2009-10-05
你用的编译器是TC吗?直接在windows里建立文本文件TC不能引用,具体为什么我也不知道。你可以用TC建立一个文件,然后通过TC向该文件存入字符。在进行操作就行了。
相似回答
大家正在搜