C++ 如何在C++;以某种模式存储并以字符串形式存储?

C++ 如何在C++;以某种模式存储并以字符串形式存储?,c++,C++,我想读txt文件的每一行,类似于这样的东西 1190/2132 123/23123 45 我想阅读整行内容,然后将它们存储在三个单独的字符串中,以便将来用于构建树。我现在正在使用fgets,但是在将其放入字符串时出错。我应该怎么做? 你已经标记了C++的问题,但是你说你在使用 fgs< /Cord>,所以我不确定你想要哪一个。 使用C stdio函数: fscanf(file, "%s %s %s", str1, str2, str3); 使用C++流: input_stream >&g

我想读txt文件的每一行,类似于这样的东西

1190/2132 123/23123 45


我想阅读整行内容,然后将它们存储在三个单独的字符串中,以便将来用于构建树。我现在正在使用fgets,但是在将其放入字符串时出错。我应该怎么做?

你已经标记了C++的问题,但是你说你在使用<代码> fgs< /Cord>,所以我不确定你想要哪一个。 使用C stdio函数:

fscanf(file, "%s %s %s", str1, str2, str3);

使用C++流:

input_stream >> str1 >> str2 >> str3;
试试这个:

std::string  line;

while(std::getline(file, line))
{
    std::stringstream  linestream(line);

    std::string word1, word2, word3;
    line >> word1 >> word2 >> word3;

    // Store words
}
这可能会起作用:

string a, b, c;

getline(cin, a, '/')
getline(cin, b, ' ')

//will only get executed if the third string exist
if(cin >> c){}

让它工作所需的东西:

  • 包括,以便可以使用输入文件流打开文本文件。
  • 如果您还想在屏幕上显示一些信息,请包括,但这只是可选的。
  • 代码部分:
伪代码:
  • 定义长度为K的字符数组,其中K可以定义为宏
  • 打开输入文件流
  • 测试是否打开,如果打开,读取一行并解析该行,直到EOF
  • 如果未打开,返回-1
代码
int fileread(const char*文件名、数据类型和数据/*保存读取信息的某个对象。*/)
{
字符lntxt[MAX_lntxt_LENGTH_CPTIMGIDX];//4)
ifstream inSR(_filename);//5)
if(inSR.is_open())//6)
{
//如果文件是打开的
而(inSR.peek()>0)
{
inSR.getline(lntxt,最大lntxt,最大长度CPTIMGIDX);
//delim可以是一组可能的delim
char*strTk=strtok(lntxt,_delim);
while(strTk!=NULL)
{
strTk=strtok(NULL,delim);
如果(strTk!=NULL)
//处理数据的代码,即一些算术运算
//或者将其存储在其他变量或对象中**
}
inSR.close();
返回0;
}
其他//7)
{

难道我的回答几乎是一样的吗!
:)
避免使用以下划线开头的标识符。
int fileread(const char* filename, dataType& data /* some object saving the read info. */)
{
  char lntxt[MAX_LNTXT_LENGTH_CPTIMGIDX];  // 4)
  ifstream inSR(_filename);  // 5)

  if (inSR.is_open())  // 6)
  {

    // If file is open

    while (inSR.peek()>0)
    {
      inSR.getline(lntxt, MAX_LNTXT_LENGTH_CPTIMGIDX);
      // delim can be a set of possible delim
      char* strTk = strtok(lntxt, _delim);
      while (strTk != NULL)
      {
         strTk = strtok(NULL, _delim);
         if (strTk != NULL)
         // Your code to process the data, i.e. some arithmetic operation
         // or store it in other variables or objects.**
      }

      inSR.close();
      return 0;
  }
  else  // 7)
  {
    cout <<"The file " <<_filename <<" can not be opened.";
    return -1;
  }
}