C++ C++;读字符串和字符

C++ C++;读字符串和字符,c++,string,input,output,C++,String,Input,Output,大家好,我正在为我的CS课程做一个项目,我不知道如何读取部分数据文件 63f7hj-9 22L这对吗 我的数据文件由这行数据组成,我必须弄清楚如何读取其中的一部分。我必须读入63并将其保存为整数,我不需要f7hj-9。我还需要读取22个空格,并将其保存为字符串,将L保存为字符 短语“这是正确的”需要进入控制台 所以我的问题是,我怎么才能只读63,而丢弃剩下的呢? 将短语“22空格”另存为字符串。 作为一个角色 短语“this correct”作为字符串

大家好,我正在为我的CS课程做一个项目,我不知道如何读取部分数据文件

63f7hj-9 22L这对吗

我的数据文件由这行数据组成,我必须弄清楚如何读取其中的一部分。我必须读入63并将其保存为整数,我不需要f7hj-9。我还需要读取22个空格,并将其保存为字符串,将L保存为字符

短语“这是正确的”需要进入控制台

所以我的问题是,我怎么才能只读63,而丢弃剩下的呢? 将短语“22空格”另存为字符串。 作为一个角色 短语“this correct”作为字符串

<我是C++新手,我已经完成了这个项目的部分工作,但我还是坚持了这一部分。
谢谢你的帮助

从文件中读取输入并拆分行
查看std::regexRead on and。你好,Nick,你需要做的是尝试使用你从类中获得的内容,如果你的代码无法正常工作,请在代码中发布一个关于你不理解的特定问题。@OznOg不需要正则表达式。我们可以使用scanf来完成,如本文所示below@shirish如果你至少在检查scanf的错误,我可能会接受这句话。不检查这种解析的回报更像是一厢情愿,而不是解决方案…@尼克明白了吗? 63f7hj-9 L Is this correct
#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