gpt4 book ai didi

c - 为什么我的代码可以正常创建文本文件,但只读取文本的第一个字符串?

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

我当前正在尝试创建一个包含文本的文件,然后读取该文件并将其打印在屏幕上。我当前的代码是这样的:

int main(){
char s[10][100];

FILE *fpointer;
fpointer=fopen("file.pp","w");
int i=0
while(i<10){
printf("enter a sentence:\n");
gets(s);
fprintf(fpointer,"%s\n", s);
x++;
}

fpointer=fopen("file.pp","r");
int i=0;
for(i=0;i<10;i++){

fgets(s[i],100,fpointer);

printf("the %d sentence is: %s \n",i+1,s[i]);
}
if(fpointer==NULL){
fprintf(stderr,"mistake");
EXIT_FAILURE;
}

fclose(fpointer);
return 0;
}

文件的创建工作正常,与文本的创建相同。我的问题是内容的阅读:第一行正确显示,后面的行只是一堆符号。我想问题出在我使用 fgets 的方式上,但我似乎无法解决它。

最佳答案

以下内容应该有效。您输入错误 x++,我将输入法更改为 fgets。另外为了方便起见,我添加了宏 NUM_OF_SENLENGHT

#include <stdio.h>
#include <stdlib.h>
#define NUM_OF_SEN 2
#define LENGHT 100

int main(){
char s[LENGHT];
FILE *fpointer;

fpointer=fopen("file.pp", "w+");

if(fpointer==NULL){
fprintf(stderr,"mistake");
EXIT_FAILURE;
}

for(int i=0; i < NUM_OF_SEN; i++){
printf("Enter a sentence:\n");
fgets(s, LENGHT, stdin);
fprintf(fpointer,"%s", s);
}

rewind(fpointer);
for(int i=0;i<NUM_OF_SEN;i++){
fgets(s, LENGHT, fpointer);
printf("The %d sentence is: %s \n",i+1,s);
}

fclose(fpointer);
return 0;
}

关于c - 为什么我的代码可以正常创建文本文件,但只读取文本的第一个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59538971/

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