在 C++ 中读取文本文件中的数字和字母
Posted
技术标签:
【中文标题】在 C++ 中读取文本文件中的数字和字母【英文标题】:Reading numbers then letters in a text file in C++ 【发布时间】:2016-02-22 00:40:51 【问题描述】:我正在尝试用 C++ 做某事,但在弄清楚具体如何做时遇到了一些麻烦。
我有一个文本文件,其中包含我需要解析和操作的信息。该文件的格式为多行,每行包含一个数字后跟一个字母:
1234 A
5678 B
9101 C
我需要做的是,逐行读取数字并根据它进行计算。然后我需要根据该行字母的值进行操作。完成这两个操作后,我会重复下一行,直到解析完文件中的所有行。
我找到了一些关于如何逐行读入字符串的文章,但我无法引用如何将行分隔为数字和字母。
非常感谢任何帮助!
【问题讨论】:
【参考方案1】:以下示例可能会有所帮助:
#include <iostream>
#include <fstream>
#include <string>
int main(int argc, char** argv)
std::ifstream fp("input.dat");
char ch;
int n;
while (fp >> n && fp >> ch)
std::cout << "Here is your number: " << n << std::endl;
std::cout << "Here is your char: " << ch << std::endl;
return 0;
在上面,文件input.dat
包含您的输入。此示例不关心数字和字母是否由换行符、制表符、空格或任何其他空格分隔。如果您确实需要准备特定格式,可以查看fscanf
或std::getline
(http://www.cplusplus.com/reference/string/string/getline/)。
【讨论】:
【参考方案2】:using namespace std;
ifstream file("file.txt");
int number;
char character;
while( file >> number >> character )
// read each line as a number followed by a character
cout << number << " " << character << endl;
switch( character )
case 'A':
break;
case 'B':
break;
case 'C':
break;
【讨论】:
我想有些人可能会发现引诱初学者清除文件系统的做法很可笑。戴先生,你小时候肯定太聪明了,不会上当……以上是关于在 C++ 中读取文本文件中的数字和字母的主要内容,如果未能解决你的问题,请参考以下文章
将文本文件中的信息读取到文本文件中的 3 个不同数组中(c++)