| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6376 人关注过本帖
标题:[求助]errno=22
只看楼主 加入收藏
ludingo1211
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2007-5-28
收藏
 问题点数:0 回复次数:6 
[求助]errno=22

使用fputs()写入文件,不成功,显示错误Invalid argument,errno=22
这是什么回事啊??谢谢!!请帮帮耳。

搜索更多相关主题的帖子: errno 
2007-05-28 16:16
zouxiaohua
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-5-28
收藏
得分:0 
这种貌似很难看出,检查一下文件操作定位等因素
2007-05-28 16:23
weishj
Rank: 1
等 级:新手上路
威 望:2
帖 子:141
专家分:0
注 册:2007-4-22
收藏
得分:0 
把你那程序贴出来看下吧,仅给这些信息没法帮你查错

If you shed tears when you miss the sun, you also miss the stars.
2007-05-28 17:18
ludingo1211
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2007-5-28
收藏
得分:0 
回复:(weishj)把你那程序贴出来看下吧,仅给这些信息...
#include <stdio.h>
#include <stdlib.h>
#include<errno.h>
int main(void)
{
FILE *fp;
if((fp=fopen("aaa.txt","r+"))==NULL)
{
puts("不能进入文件");
perror("原因");
printf("errno=%d\n",errno);
exit(1);
}
system("PAUSE");
return 0;
}
fopen返回NULL。
不能进入文件,是不是还有什么步骤没做的??
使用Dev-c++编译器。

[此贴子已经被作者于2007-5-29 17:14:12编辑过]


云带来了风,不,是风带去了云。QQ群6438659 请你不要一时冲动,对c不感兴趣的,请不要加入。
2007-05-29 17:08
weishj
Rank: 1
等 级:新手上路
威 望:2
帖 子:141
专家分:0
注 册:2007-4-22
收藏
得分:0 
fp=fopen("aaa.txt","r+")错啊
r标记为以只读方式打开文件,而+表示要建立文件;这是不是自相矛盾了
要只读打开,就直接用fp=fopen("aaa.txt","r"),前提是aaa.txt必须在你存放程序的目录中存在;
如果aaa.txt不存在,你想建立它,那么就应该用fp=fopen("aaa.txt","w+")

If you shed tears when you miss the sun, you also miss the stars.
2007-05-30 11:35
ludingo1211
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2007-5-28
收藏
得分:0 
回复:(weishj)fp=fopen(
哦,谢谢啊,我的课本上写着使用“r+“,是打开一个文件,进行读写,如果文件不存在则创建它,如果存在写入数据时,是从开头写入,覆盖原来的内容。
可我运行了,并不是写入文件开头,而是末尾,看来这也是错的了。
嗯,对了,还问你个问题吧。
就是我看到有个程序是用“a+“打开的,可用了fwrite()写入,用fread()读出。
不是用二进式打开的文件能用那两个函数吗??

云带来了风,不,是风带去了云。QQ群6438659 请你不要一时冲动,对c不感兴趣的,请不要加入。
2007-05-30 16:51
weishj
Rank: 1
等 级:新手上路
威 望:2
帖 子:141
专家分:0
注 册:2007-4-22
收藏
得分:0 

很不好意思,我五楼说错了一点,现作如下更正:
用fp=fopen("aaa.txt","r+")是以读写方式打开一个已存在的字符文件,前提是这个文件必须存在,若不存在则报错.
以这种方式打开的文件,在进行写入时,确实是覆盖了原来的内容呀.
字符文件可以用fwrite()写,用fread()读,并且在读写字符时效果跟fprintf()以及fscanf()基本一样,但当读写非字符型数据时,比如用fwrite()向文件中写入一组整形数,再用fread()把它读出来显示的却是乱七八糟的数.说明字符文件还是最好不要用fread()和fwrite()来读写

(注:以上为TC2.0下测试结果)

[此贴子已经被作者于2007-5-30 20:18:20编辑过]


If you shed tears when you miss the sun, you also miss the stars.
2007-05-30 20:13
快速回复:[求助]errno=22
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024195 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved