【发布时间】:2018-07-26 17:35:13
【问题描述】:
我目前正在尝试在文件中使用 write 函数写入一个整数变量。这是我的代码:
int main(int argc, char** argv){
int fd, nbMult, i;
char buf[4];
if((fd = open("data", O_CREAT|O_RDWR, 0777))==-1){
perror("ERROR\n");
exit(EXIT_FAILURE);
}
do{
printf("Bla bla ");
if( scanf("%d", &nbMult) !=1 ) while( (i = getchar()) != '\n' );
}while(nbMult<1);
sprintf(buf, "%d", nbMult);
if( write(fd, buf, sizeof(int)) == -1 ){
perror("ERROR\n");
exit(EXIT_FAILURE);
}
close(fd);
return 0; }
它会创建文件,但是当我尝试打开它时,它显示“无法显示”。当我用 data.txt 替换文件名时,它可以工作,但在文件中显示奇怪的字符。我也尝试使用 sprintf() 将 Integer 变量转换为 String ,这是同样的问题。
【问题讨论】:
-
你如何“访问”文件?
-
你了解二进制文件和文本文件的区别吗?
-
我尝试打开文件:怎么样?
-
如果您希望文件包含可读文本而不是二进制文件,那么 sprintf() 或 fprintf() 之类的方法是可行的。向我们展示该代码,我们会告诉您哪里出错了。
-
通过在控制台中输入 gedit 数据
标签: c file unix ascii c-standard-library