将文件中的数据用string读出来c++
时间: 2023-06-25 18:02:32 浏览: 40
可以使用C++的文件输入流(ifstream)和字符串流(stringstream)来读取文件中的数据并存储到字符串中。假设文件名为data.txt,以下是示例代码:
```cpp
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
int main() {
std::ifstream file("data.txt");
std::stringstream buffer;
buffer << file.rdbuf();
std::string data = buffer.str();
std::cout << data << std::endl;
return 0;
}
```
首先,我们创建一个文件输入流对象file,并打开要读取的文件data.txt。然后,我们创建一个字符串流对象buffer,并使用file.rdbuf()将文件中的数据读入到buffer中。最后,我们将buffer中的数据转换为字符串类型并存储到data变量中。可以使用std::cout输出data来验证读取是否成功。
相关问题
将文件中的数据读出来c++
读取文件中的数据可以使用 C++ 标准库中的 ifstream 类。以下是一个示例代码:
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
ifstream infile("data.txt"); // 打开文件
string line;
while (getline(infile, line)) { // 逐行读取文件
cout << line << endl; // 输出每行数据
}
infile.close(); // 关闭文件
return 0;
}
```
以上代码中,我们打开一个名为 `data.txt` 的文件,逐行读取文件中的数据,并将每行数据输出到控制台。最后,记得关闭文件。
C++将文件中的数据读入栈中不用stack<string>
可以使用数组来读取文件中的数据并存储到栈中。具体实现可以参考以下代码:
```c++
#include <iostream>
#include <fstream>
using namespace std;
const int MAX_SIZE = 100; // 栈的最大容量
int main() {
string data[MAX_SIZE]; // 存储数据的数组
int top = -1; // 栈顶指针
ifstream infile("data.txt"); // 打开文件
if (!infile) {
cout << "文件打开失败!" << endl;
return 0;
}
string line;
while (getline(infile, line)) { // 按行读取文件中的数据
if (top == MAX_SIZE - 1) { // 栈满,无法入栈
cout << "栈已满!" << endl;
break;
}
data[++top] = line; // 将数据入栈
}
infile.close(); // 关闭文件
// 输出栈中的数据
while (top >= 0) {
cout << data[top--] << endl;
}
return 0;
}
```
以上代码中,我使用了一个字符串数组来存储文件中的数据,通过一个栈顶指针 `top` 来实现入栈和出栈操作。读取文件中的数据时,使用 `getline()` 函数按行读取,将每行数据存储到数组中。输出数据时,从栈顶开始依次输出,直到栈空为止。