gpt4 book ai didi

c - 从文件中读取

转载 作者:太空宇宙 更新时间:2023-11-04 05:27:15 25 4
gpt4 key购买 nike

昨天在我的类里面,我们第一次开始使用文件。我想看看它是如何工作的,所以我做了一个程序,我写了一个词,这个词必须写在某个文件中(那部分有效)。之后,我想从该文件中读取一些字符并将其显示在屏幕上。

#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <sys/stat.h>
#include <process.h>
#include <fcntl.h>
#include <string.h>

int main()
{
int df,m;
char c[50],d[50];
printf("c= \n");
gets(c);
m=strlen(c);
df=open("e:\\codeblocks\\fisperimente\\text2.txt",O_RDONLY|O_WRONLY);
if (df==-1) {printf("error");exit(1);}
write(df,c,m);
/*int i,n;
n=read(df,d,5);
for (i=1;i<=n;i++)
{
printf("%c",d[i]);
} */

close(df);
return 0;
}

我在评论中提出的是不起作用的部分。我注意到如果我 printf n,它会返回 -1,这意味着我在读取文件时做错了什么。

最佳答案

首先,我会不惜一切代价避免使用gets()。它不安全,被认为是已弃用。它可能会在未来被移除。相反,请考虑使用 fgets(),如下所示:

fgets(c, sizeof(c), stdin);

接下来,你的open是可疑的:

df=open("e:\\codeblocks\\fisperimente\\text2.txt",O_RDONLY|O_WRONLY);

只读和只写是互斥的。如果你想打开一个文件进行读写,你需要 O_RDWR

最后,在写入文件后,文件指针指向文件末尾。欲重读,须追溯至始。这将做到这一点:

lseek(df, 0, SEEK_SET);

完成后,您可以读回您的文件。

关于c - 从文件中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20581276/

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