C语言文件输入输出的问题

已有
FILE *fp;
编译运行:
fp=fopen("test","w");
fputc(65,fp);
printf("%d",fgetc(fp)); //结果为空

为什么不能在输入流看到输入的数据?

还有问题就是
int main(int argc,char *argv[])
中的两个参数的作用,以及输入示例

谢谢了!

第1个回答  2012-12-29
你好
输入流并不保存你写入的数据
int main(int argc,char *argv[])

argc 是在命令行输入的参数个数,argv 是保存你输入参数的地址
例子:
gcc a.c b.txt
这时argc = 3 argv[0]就是指a.c文件 argv[1]就是指b.txt

希望可以帮到你,望采纳
第2个回答  2012-12-29
fp=fopen("test","w");
fputc(65,fp);
printf("%d",fgetc(fp)); //结果为空

这时fp是写文件的,并且在文件末尾

如果要写完再读

先fclose(fp)
fp = fopen("test", "r");
//此时fp在文件开头
fgetc(fp);
第3个回答  2012-12-29
int main(int argc,char *argv[])
argc 是argv[]数组的大小,这个数组里面每个都是一个指针,都指向一个字符串,这些字符串argv[0]默认就是你的生成的exe名字,比如生成a.exe然后写了以下的程序.
#include<stdio.h>
int main(int argc,char *argv[])
{int i=0;
for(;i<argv;++i)
puts(argv[i]);
return 0;
}
假设这个生成的a.exe 在H盘,我们进入cmd; h: 然后输出 a.exe abcd efgh dsaa
那么输出的就是a.exe abcd efgh dsaa。这样你可以传任何自己想要的字符串进去。
已有
FILE *fp;
编译运行:
fp=fopen("test","w");//这里是写文件啊改成"ab+",而且交叉读写幺fflush(fp):
fputc(65,fp);
printf("%d",fgetc(fp)); //结果为空 写方式打开这么能直接读呢。本回答被提问者采纳
第4个回答  2012-12-29
fputc是指向文件中输入一个字符,你这边是一个数字,因此它是一个ASCII码,你肯定看不见数字,只能看见这个ASCII码对应的字符,即A,main中的两个参数一个是代表你输入的命令参数的个数一个是参数本身,例如你在运行程序时后加了aa bb,那么agrc即为2,argc即为aa bb来自:求助得到的回答
第4个回答  2012-12-29
main函数中可以包含不止2个参数,常用的argc和argv分别表示:参数的个数和参数的字符串数组;另外,还可以向main函数传递env环境变量参数;
相似回答