C语言fwrite()问题。
我记得puts和gets是不一样空格为结束的呀?name1fputs和fgets应该也是一样的啊。不以空格为结束。但是那个烫烫烫烫烫烫烫烫烫烫应该是因为写进去的字符串缺少...
我记得puts和gets是不一样空格为结束的呀?name1fputs和fgets应该也是一样的啊。不以空格为结束。但是那个烫烫烫烫烫烫烫烫烫烫应该是因为写进去的字符串缺少字符串结束符吧'\0'。
展开
3个回答
展开全部
fwrite(),fread() 用于2进制文件 写和读。fopen 时 要 设 "wb“ "rb"。
puts 见到 字符串结束符 输出结束。
假定 声明的字符数组大小 大于输入的1行字符串个数 则
char str[500];
gets(str);
fgets(str,500,stdin);
gets 读1行字符串,含空白,读入的内容不含 '\n'
fgets 读1行字符串,含空白,读入的内容 含 '\n'
两者都含字符串结束符 '\0'
puts 见到 字符串结束符 输出结束。
假定 声明的字符数组大小 大于输入的1行字符串个数 则
char str[500];
gets(str);
fgets(str,500,stdin);
gets 读1行字符串,含空白,读入的内容不含 '\n'
fgets 读1行字符串,含空白,读入的内容 含 '\n'
两者都含字符串结束符 '\0'
更多追问追答
追问
那个“烫烫烫烫烫烫烫烫烫烫烫烫”是怎么回事呢?
那么我输入的hello world为何直接收了hello呢?
不好意思还是没搞明白。
追答
没看到你的输入语句。
hello world 是从文件读入,还是从键盘读入?
如果是文件,用 fgets() 读入:
FILE *fin;
char s[100];
fin=fopen("abc.txt","r");
fgets(s,100,fin); 这里就读入1行。
如果从键盘读入:
fgets(s,100,stdin); 这里就读入1行。
---------
如果你用 fread() 从文件读入, 文件打开 要用 binary 形式。
=========
输出错,可能是输入错,也可能是输出错,也可能是文件格式与读法不配套。要让我精确地告诉你错的原因,请把程序给全了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
读写都少了结尾的0。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询