fread(buf, sizeof(buf), 1, fp); 这个buf数组定义多大 是不是根据fp指向的文件内容的 大小 printf("%s\n\n", buf); 出现很多烫烫烫 数组越界?
我加了个buf[99]='\0'; 你帮忙看看代码吧
#include<stdio.h>
int main(){
FILE *fp;
char buf[100];
char *p=buf;
int i;
fp=fopen("d:\\test.ini", "r");
fread(p, sizeof(buf), 1, fp);
buf[99]='\0';
printf("%s\n\n", buf);
p = strtok(buf, ";");
/*if (p) {
printf("%s\n", p);
}/* end of if(p) */
while (p) {
p = strtok(NULL, ";");
if (p) {
printf("%s\n", p);
}/* end of if(9) */
}/* end of while (p) */
fclose(fp);
return 0;
}
不是只有一个字符 是只读一次 一次读sizeof个 输出字符数组 不用%s吗
追答读取sizeof个,这个串中没有'\0'输出不会终止
printf%s是只有碰到'\0'输出才会停下来,而且加入sizeof个中间恰巧有\0也会终止输出
fwrite(buf,sizeof(char),sizeof(buf),stdout);
我加了个buf[99]='\0'; 你帮忙看看代码吧
谢了
不知道你test.ini里面什么东西,你就把printf输出改成
fwrite(buf,sizeof(char),sizeof(buf),stdout);
意思是把buf中sizeof(buf)个char写入标准输出文件stdout中,stdout就是控制台窗口
还是烫烫烫啊 这个数组buf设置多大呢 怎么老是越界 这是我主要困扰的