gpt4 book ai didi

c - 编写C语言函数

转载 作者:行者123 更新时间:2023-11-30 21:29:07 25 4
gpt4 key购买 nike

嗨,我正在尝试使用 write 函数写入文件。但是我得到的是 '^^' 而不是我的变量:在我的代码下面

#include<stdio.h>
#include <fcntl.h>

main (int argc,char * argv[])
{
FILE *PF=NULL;
char File_name_1[100];
int fd=0;
char str[30] = "This is test";
int var=30;

printf("Saisir le nom du fichier2 ");
scanf("%s",File_name_1);

if ( (fd = open(File_name_1,O_WRONLY|O_TRUNC|O_CREAT,0777)) < 0 )
{
printf("Impossible d'ouvrir fichier \n");
}
else
{ printf("Traitement2 à commencer2 var :%d:",var);
write(fd,&var,sizeof(var));
}

close(fd);
return 0;
}

最佳答案

问题出在这里:

write(fd,&var,sizeof(var));

您正在尝试将 int 写入文件中。如果您想编写人类可读的内容,则 write 的第二个参数应为 char * 类型。尝试使用 itoa 函数来转换您的 var 值,它会将其转换为该数字的字符串表示形式。如果您的系统上没有 itoa,您也可以使用 sprintf :

    #include <stdio.h>
#include <fcntl.h>
#include <strings.h> //for strlen

int main (int argc,char * argv[])
{
char buff[256]; //the buffer used by sprintf
char File_name_1[100];
int fd=0;
char str[30] = "This is test";
int var=30;

printf("Saisir le nom du fichier2 ");
scanf("%s",File_name_1);

if ( (fd = open(File_name_1,O_WRONLY|O_TRUNC|O_CREAT,0777)) < 0 )
{
printf("Impossible d'ouvrir fichier \n");
}
else
{ printf("Traitement2 à commencer2 var :%d:",var);
sprintf(buff, "%d", var); //convert your int into a string
write(fd,buff,strlen(buff)); //wrtie the string in the fd
}

close(fd);
return 0;
}

关于c - 编写C语言函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34045699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com