在c++中从多行文本文档中读取一个数字

Reading a number from a multi-line txt document in c++

本文关键字:一个 数字 读取 文档 c++ 文本      更新时间:2023-10-16

我正在制作一个程序,并有一个。txt文件,我需要从中读取,并从中获取命令。文本文档看起来像:

U
R
F 10
D
F 13
Q

,我需要从中得到数字。我读取文件的方式是从一个名为instreamifstream对象。目前我正在使用

while(instream.get(charVariable)){
    switch(charVariable){
    case 'F': //do the forward command
       break;
    ...
    }
}

forward命令需要占用这一行,它确实这样做了,它需要读取F,跳过空格,并将整个数字放入int变量中。我是相当新的c++,所以我需要帮助做....如何将数字,读入单个字符变量,读入整数变量?任何帮助都太好了!由于

streams在读取时移动。这意味着当您从流中读取F后,下一个输入是integer。由于它们适用于格式化的输入,当你使用>>

时,流将为你跳过空白。
while(instream >> charVariable)){
    switch(charVariable){
    case 'F': //do the forward command
       int nr;
       instream >> nr;
       // do something with number.
       break;
    ...
    }
}

基本上文件流和i/o流之间没有太大的区别。您可以执行以下操作:

while(!instream.eof())
{
    char command;
    instream >> command;
    switch(command)
    {
        case 'F':
            int F_value;
            instream >> F_value;
            forward(F_value);
            break;
        //...
    }
}

由于所使用的数字可以大于一个字符(即"10"是两个字符),因此最好只使用常规整数变量。

int n;
...
instream >> n; //if your switch statement is working this goes inside the 'F' case

那么你可以对n做任何你想做的事情(在你把下一个整数读入n之前)