Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在读取txt时检查输入是否存在_C++_Arrays_Ifstream - Fatal编程技术网

C++ 在读取txt时检查输入是否存在

C++ 在读取txt时检查输入是否存在,c++,arrays,ifstream,C++,Arrays,Ifstream,我的程序在包含各种命令的文本文件上运行。其中一个是“show”,它显示数组或数组中的元素。该命令可以有以下两种形式: 1) show arrayName 2) show arrayName arrayIndex 第一个命令显示整个数组,而第二个命令显示给定arrayIndex处的数组元素(检查索引是否存在后;否则给出错误)。我必须用一个输入流来处理这些问题。我了解如何执行此操作的总体思路,但一次只能实现一个功能,即我无法事先检查arrayIndex是否存在 对于以下代码行 in >

我的程序在包含各种命令的文本文件上运行。其中一个是“show”,它显示数组或数组中的元素。该命令可以有以下两种形式:

1) show arrayName
2) show arrayName arrayIndex
第一个命令显示整个数组,而第二个命令显示给定arrayIndex处的数组元素(检查索引是否存在后;否则给出错误)。我必须用一个输入流来处理这些问题。我了解如何执行此操作的总体思路,但一次只能实现一个功能,即我无法事先检查arrayIndex是否存在

对于以下代码行

    in >> arrayName >> arrayIndex;

当存在整数值时,我可以在arrayIndex处显示元素。但是,当索引不存在时(必须显示整个数组),输入流将垃圾值分配给arrayIndex。有没有办法区分这两个命令?

你可能需要在字符串中读取到行的结尾字符,然后自己解析,而不是依赖C++流输入操作符。输入流不“分配垃圾值”。它失败并保持
arrayIndex
不变(可能已经有一个垃圾值了)。你说“我无法检查arrayIndex是否存在”是什么意思???否则,您将如何确保索引在范围内???@Brandon命令可以有索引,也可以没有索引。如果没有arrayIndex(命令1),则显示整个阵列。如果命令具有arrayIndex(命令2),则只显示索引处的数组元素。
int arrayIndex=-1;std::string arrayName=“”;在>>arrayName>>arrayIndex中;if(arrayIndex!=-1){....}
初始化变量或通过两次读取来执行:
if(在>>arrayName&&in>>arrayIndex中){..}
。它仍然是一条流,只是读了两遍。