C++ 读取txt里的字符串和数字
时间: 2024-03-15 13:46:07 浏览: 415
要读取txt文件里的字符串和数字,可以使用C++的文件输入流对象 `ifstream` 和相关的读取操作符。以下是一个简单的示例代码,假设txt文件里的数据格式为每行一个字符串和一个数字,用空格隔开。
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
ifstream infile("data.txt"); // 打开文件
string str;
int num;
while (infile >> str >> num) { // 循环读取每一行的数据
cout << str << " " << num << endl; // 输出读取的数据
}
infile.close(); // 关闭文件
return 0;
}
```
在上面的示例代码中,我们首先打开文件,然后使用 `while` 循环读取每一行的数据,每次读取一个字符串和一个数字,最后输出读取的数据。需要注意的是,在使用 `ifstream` 读取文件时,文件必须已经存在且可读,否则会导致错误。同时,读取操作符会自动跳过空格和换行符等分隔符,因此可以方便地读取以空格分隔的字符串和数字。最后,记得关闭文件以释放资源。
相关问题
C++ 读取txt里的字符串和数字,并把数字放在一个数组里
好的,可以使用C++的文件输入流来读取txt文件中的字符串和数字,并将数字存储在一个数组中。具体操作步骤如下:
1. 包含头文件`<fstream>`和`<iostream>`。
2. 定义一个`ifstream`类型的文件输入流对象,并打开txt文件,例如:
```c++
ifstream infile("example.txt");
```
3. 定义一个字符串类型的变量`str`和一个整型数组`nums`,并初始化数组大小。
```c++
string str;
int nums[100];
int i = 0;
```
4. 使用`infile`对象的`getline()`函数逐行读取txt文件中的字符串,并使用`stringstream`对象将其转换为整型数字。如果读取的字符串可以转换为数字,则将其存储在`nums`数组中,例如:
```c++
while(getline(infile, str))
{
stringstream ss(str);
int num;
if(ss >> num)
{
nums[i++] = num;
}
}
```
5. 关闭文件输入流对象。
```c++
infile.close();
```
完整的代码如下:
```c++
#include <fstream>
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
ifstream infile("example.txt");
string str;
int nums[100];
int i = 0;
while(getline(infile, str))
{
stringstream ss(str);
int num;
if(ss >> num)
{
nums[i++] = num;
}
}
infile.close();
// 输出数组中的数字
for(int j = 0; j < i; j++)
{
cout << nums[j] << " ";
}
cout << endl;
return 0;
}
```
其中,`example.txt`文件中的内容如下:
```
hello world
123 456
789
```
运行结果如下:
```
123 456 789
```
C++ 读取文本数据里的字符串和数字
要读取文本数据里的字符串和数字,可以使用C++的文件输入流对象 `ifstream` 和相关的读取操作符。以下是一个简单的示例代码,假设文本数据里的数据格式为每行一个字符串和一个数字,用逗号隔开。
```c++
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
int main() {
ifstream infile("data.txt"); // 打开文件
string line;
while (getline(infile, line)) { // 循环读取每一行的数据
stringstream ss(line); // 把每一行数据转为stringstream
string str;
int num;
getline(ss, str, ','); // 从stringstream里读取字符串,以逗号为分隔符
ss >> num; // 从stringstream里读取数字
cout << str << " " << num << endl; // 输出读取的数据
}
infile.close(); // 关闭文件
return 0;
}
```
在上面的示例代码中,我们首先打开文件,然后使用 `while` 循环读取每一行的数据。对于每一行的数据,我们把它转为 `stringstream` 对象,再使用 `getline` 函数从 `stringstream` 里读取字符串,以逗号为分隔符。注意,这里我们使用了第三个参数来指定分隔符。接着,我们使用 `>>` 操作符从 `stringstream` 里读取数字。最后,记得关闭文件以释放资源。
阅读全文