c++读取txt文件存入string
时间: 2023-05-31 20:20:42 浏览: 266
### 回答1:
可以使用C++中的fstream库来读取txt文件,并将其存入string中。具体步骤如下:
1. 引入头文件
```c++
#include <fstream>
#include <string>
```
2. 打开文件
```c++
std::ifstream file("filename.txt");
```
3. 读取文件内容
```c++
std::string content((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
```
4. 关闭文件
```c++
file.close();
```
完整代码如下:
```c++
#include <fstream>
#include <string>
int main() {
std::ifstream file("filename.txt");
std::string content((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
file.close();
return ;
}
```
### 回答2:
读取txt文件存入string其实是一种常见的文件操作,通过这种方式可以将一个文本文件中的内容读取到一个字符串中,以便于后续的处理和使用。下面是一些可以参考的步骤:
1. 打开文件。用C++的fstream类或者C语言的FILE结构体都可以打开一个txt文件。具体的方法是:
C++:
```cpp
#include <fstream>
using namespace std;
string read_file(string file_path) {
ifstream file(file_path); // 打开文件
string content((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>()); // 读取内容到字符串
file.close(); // 关闭文件
return content;
}
```
C:
```c
#include <stdio.h>
#include <stdlib.h>
char* read_file(char* file_path) {
FILE* fp;
long file_size;
char* content;
fp = fopen(file_path, "rb"); // 打开文件
fseek(fp, 0, SEEK_END);
file_size = ftell(fp);
rewind(fp);
content = (char*) malloc(sizeof(char) * (file_size + 1)); // 为字符串分配空间
fread(content, sizeof(char), file_size, fp); // 读取内容到字符串
content[file_size] = '\0'; // 字符串结尾添加'\0'
fclose(fp); // 关闭文件
return content;
}
```
需要注意的是,文件打开后需要及时关闭,否则可能会产生一些不必要的错误。此外,使用char数组存放字符串时,需要考虑字符串的大小,并在文件读取完成后手动添加字符串结尾。
2. 读取文件内容。在文件打开后,可以按照一次性读取或者分段读取的方式将文件内容读取到字符串中。如上述代码所示,可以使用std::istreambuf_iterator或者fgets等方法读取文件内容到字符串中。
3. 关闭文件。读取文件内容完成后,需要及时关闭文件,释放资源,避免产生一些错误。具体方法是fp.close()或fclose(fp)。
总的来说,读取txt文件并存入string/string数组是一种常见的文件操作方法,可以帮助我们更加灵活地处理文本数据。需要注意的是,打开文件后要及时关闭文件,以保证文件操作的正确性。
### 回答3:
在C语言中,要读取txt文件并将其内容存储到string类型的变量中,需要用到文件指针和字符数组。
首先,需要声明一个文件指针变量和一个字符数组:
FILE *fp;
char str[100];
接着,需要打开txt文件并读取其中的内容:
fp = fopen("file.txt", "r");
fgets(str, 100, fp);
其中,第一个参数是文件名,第二个参数是打开文件的模式,"r"表示只读模式;fgets()函数用于读取文件中的一行内容,第一个参数是字符数组,第二个参数是读取的最大字符数,第三个参数是文件指针。
读取文件内容后,可以将其存储到string类型的变量中:
string s = str;
最后,关闭文件指针:
fclose(fp);
完整代码如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
FILE *fp;
char str[100];
fp = fopen("file.txt", "r");
if (fp == NULL) {
printf("File does not exist!\n");
exit(1);
}
fgets(str, 100, fp);
fclose(fp);
string s = str;
return 0;
}
阅读全文