大家好,我正在为CS班的一个项目工作,我不知道如何读取部分数据文件。
63f7hj-9 22个空格L这是正确的
我的数据文件由这一行数据组成,我必须弄清楚如何读取其中的一部分。我必须读入63并将其保存为整数,并且不需要f7hj-9。我还需要读入22个空格并将其另存为字符串,并将L保存为字符。
需要在控制台中输入短语“这是正确的吗”。
所以我的问题是,我如何只读入63并丢弃其余的? 将短语“ 22个空格”另存为字符串。 L作为字符 和短语“这是正确的”作为字符串。
我是C ++的新手,我已经开始从事该项目的工作,但是我坚持了这一部分。
感谢您的帮助。
答案 0 :(得分:0)
从文件读取输入并将行
63f7hj-9 L Is this correct
%d将读取整数,因为它是整数的格式说明符
接下来,我们需要忽略文件中的“ f7hj-9”,因此只需按原样编写即可完成工作
接下来,我们需要读取22个空格,因此%22c将读取22个字符,而不考虑该字符是换行符还是空格(此处为22个空格)
#include <stdio.h>
int main() {
int n;
char c;
char space1[23];
char str2[32];
FILE *fp;
fp = fopen("b.txt", "r");
if(fp == NULL) {
printf("Failed to open the file\n");
return 1;
}
if(fscanf(fp, "%df7hj-9%22c%c%*c%[^\n]s", &n, space1, &c, str2) != 4) {
printf("Read failure\n");
return 1;
}
printf("Integer = %d\n", n);
printf("Spaces = %sEnd\n", space1);
printf("Character = %c\n", c);
printf("String = %s", str2);
return 0;
}
输入:
63f7hj-9 L Is this correct
输出:
Integer = 63
Spaces = End
Character = L
String = Is this correct