首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请问怎么从文件中读取字符串,遇到换行不结束,多谢

2012-03-27 
请教如何从文件中读取字符串,遇到换行不结束,谢谢!我在写一个词法扫描器,老师要求从文件中读取字符并进行

请教如何从文件中读取字符串,遇到换行不结束,谢谢!
我在写一个词法扫描器,老师要求从文件中读取字符并进行扫描
我用fscanf函数,但是遇到换行就读取结束,只能对文件中第一行字符进行扫描
请高手指教,有没有什么办法能读取文件中的所有字符并放在字符数组里
例如:
test.txt文件内容如下:
sadfefwq213213%^@#$342 4121
1234 4!@#fds1234  
[[21ffda9

想读取这个文件的所有字符,存放在pro[max]里.
我的源代码如下:
void read()
{
FILE *fp;
int k;
fp=fopen("test.txt","r");
for(k=0;k<max-1;k++)
{
fscanf(fp,"%c",&pro[k]);
}
pro[k]='\0';
fclose(fp);
}
而经过操作之后,pro[max]只包含文件中第一行的所有字符,所以我纠结了一下午....

希望高手解答!!! 不胜感激! 谢谢!!

[解决办法]
你的max是哪来的?
[解决办法]
open函数
[解决办法]
#include <stdio.h>
#include "string.h"

int main(void)
{
FILE * stream;
char buf[1024];
memset(buf,0x00,sizeof(buf));
if ((stream = fopen("test.txt", "r")) == NULL)
{
fprintf(stream,"Cannot open output file.\n");
return 1;
}
fread(buf, 1024, 1, stream);
printf("%s\n", buf);
fclose(stream);
return 0;
}
用这个可以实现,具体可以去参考下fread函数

热点排行