gpt4 book ai didi

c - 如何从文件中读取字符直到一个空格并将其存储为一个字符串(c)?

转载 作者:太空宇宙 更新时间:2023-11-04 01:02:14 24 4
gpt4 key购买 nike

我需要读取文件中空格前一行的所有信息并将其存储为字符串,我该怎么做?

文件示例:

Biology A 4.0
Tennis B 1.0

等(我稍后需要字母和数字,我知道如何妥善存储它们,只是该死的字符串给我带来了麻烦)

目前为止

int main (void)
{
FILE* grades;
char className[10];
char currChar;
int i = 0;

grades = fopen("grades.txt", "r");
if (fgetc(grades) != ' ')
{
currChar = fgetc(grades);
className[i] = currChar;
i++;
}

/* what I want to happen here: if a character is not a space, it is
appended to className. I thought if i was the position in the array,
I could add in one character at a time
*/
printf("%s", className); // check to make sure it worked
}

结果是什么:看起来像 ?在一个六边形

感谢您的帮助,我也愿意尝试其他方法。我尝试使用 fgets,其长度 i 等于在前一个 while 循环中找到的空格之前的字符数,但它直接在我想要的区域之后打印了该部分。

最佳答案

为什么不直接使用 fscanf

类似的东西:

#include <stdio.h>

int main (void)
{
FILE* grades;
char className[10];
char grade;
float marks = 0;

grades = fopen("grades.txt", "r");

while(fscanf(grades,"%s %c %f", className, &grade, &marks)>0) {
printf("%s %c %f\n", className, grade, marks);
}
}

关于c - 如何从文件中读取字符直到一个空格并将其存储为一个字符串(c)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33968157/

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