C++问题六 C++循环读取 既有字符串又有变量的文件。文件名包含变量(已解决)

C++问题六 C++循环读取 既有字符串又有变量的文件。文件名包含变量(已解决)

C++中读取文件,当文件名中既有字符串又有变量的时候,采取stringstream 流进行输入输出操作。
文件路径为 F:\VSCODE\文件1_2.txt
第一步,使用stringstream ,要包含头文件。

#include<sstream>

第二步,创建一个类(也可以不创建,我是为了之后程序的便利性创建的类)

class Filename
{
public:
	Filename(string file1,string file2,string file3,int shu1,int shu2)
	{
		m_file1 = file1;
		m_file2 = file2;
		m_file3 = file3;
		m_shu1 = shu1;
		m_shu2 = shu2;

	}
	string m_file1;
	string m_file2;
	string m_file3;
	int m_shu1;
	int m_shu2;

};

第三步,写个函数,让它以字符串的形式返回文件路径,写入的是文件名中的变量。

string filename(int jy, int jx)
{
	stringstream ss;
	Filename p1("F:/VSCODE/文件", "_", ".txt ", jy, jx);

	/*stringstream ss;*/
	ss << p1.m_file1 << p1.m_shu1 << p1.m_file2 << p1.m_shu2 << p1.m_file3;
	return ss.str();

}

第四步,调用,写个输出验证验证

int main()
{
	string filename2;
	for(int j=0;j<2;j++)
	{
		for(int i=0;i<3;i++)
		{
			 filename2=filename(j,i);
			 
			cout<<filename2<<endl;
		}
	}
	system("pause");
	return 0;
}

结果如图
在这里插入图片描述
所有代码如下:这里一定要注意ss << p1.m_file1 << p1.m_shu1 << p1.m_file2 << p1.m_shu2 << p1.m_file3;不能加endl; 否则查找不到对应的文件,因为加这个路径和不加这个路径不一样

#include <iostream>
#include<string>
#include<sstream>

using namespace std;

class Filename
{
public:
	Filename(string file1,string file2,string file3,int shu1,int shu2)
	{
		m_file1 = file1;
		m_file2 = file2;
		m_file3 = file3;
		m_shu1 = shu1;
		m_shu2 = shu2;

	}
	string m_file1;
	string m_file2;
	string m_file3;
	int m_shu1;
	int m_shu2;

};

string filename(int jy, int jx)
{
	stringstream ss;
	Filename p1("F:/VSCODE/文件", "_", ".txt ", jy, jx);

	/*stringstream ss;*/
	ss << p1.m_file1 << p1.m_shu1 << p1.m_file2 << p1.m_shu2 << p1.m_file3;
	return ss.str();

}
int main()
{
	string filename2;
	for (int j = 0; j < 2; j++)
	{
		for (int i = 0; i < 3; i++)
		{
			filename2 = filename(j, i);

			cout << filename2 << endl;
		}
	}
	system("pause");
	return 0;
}
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在C语言,可以使用fopen函数打开文件,并使用fread函数将文件内容读取到一个字符串变量。 首先,我们需要定义一个字符串数组来存储文件内容,如下所示: char str[1000]; 接下来,我们可以使用fopen函数打开文件,需要传入文件路径和打开方式作为参数,打开方式可以是"r"(只读方式打开文件)或"rb"(以二进制只读方式打开文件)。 FILE *fp = fopen("文件路径", "r"); 然后,我们可以使用fread函数将文件内容读取字符串变量,需要传入要读取字符串变量、每个元素的大小、要读取的元素个数以及文件指针作为参数。 fread(str, sizeof(char), sizeof(str), fp); 在读取完成后,可以使用fclose函数关闭文件。 fclose(fp); 最后,我们可以打印出读取到的字符串变量,如下所示: printf("%s\n", str); 以上就是使用C语言将文件内容读取字符串的基本过程。需要注意的是,读取文件大小不能超过字符串数组的大小,并且在读取完成后,我们需要添加结束符'\0'来标识字符串的结束。如果文件过大,需要使用循环的方式读取文件内容。 ### 回答2: 要读取文件字符串,可以使用不同的方法,取决于你使用的编程语言。以下是使用常见的Python编程语言的示例。 首先,你需要打开文件并将其读取为一个字符串。你可以使用Python的内置open()函数来打开文件。通过指定文件的路径和打开模式,你可以获得一个文件对象。然后,你可以使用文件对象的read()方法来读取文件的内容。 下面是一个简单的示例代码: ```python # 打开文件 file = open('filename.txt', 'r') # 读取文件内容到字符串 content = file.read() # 关闭文件 file.close() print(content) ``` 在上面的代码,'filename.txt'是你要读取文件的路径和名称。'r'是打开文件的模式,表示以只读模式打开文件。 在将文件内容读取字符串后,你可以根据需要进行进一步的处理。你可以使用字符串的方法和函数对文件内容进行操作和分析。 正确读取文件并将其存储为字符串的代码如上所示。记得在完成文件操作后关闭文件,以释放系统资源。 ### 回答3: 在C语言读取文件字符串可以通过以下几个步骤实现: 1. 打开文件:首先需要用到C语言提供的文件指针(FILE*),通过调用fopen函数打开需要读取文件。函数原型如下: ```c FILE* fopen(const char* filename, const char* mode); ``` 其,filename是要打开的文件名,mode是打开文件的模式,常用的模式有"r"(只读)和"w"(写入)等。 2. 读取文件内容:打开文件后,可以使用fgets函数从文件读取内容到字符串缓冲区。fgets函数的原型如下: ```c char* fgets(char* str, int num, FILE* stream); ``` 其,str是指向字符数组的指针,用于存储读取到的字符串;num是要读取的最大字符数;stream是要从读取数据的文件指针。 例如,可以定义一个字符数组来存储读取到的字符串: ```c #define MAX_SIZE 1000 char content[MAX_SIZE]; fgets(content, sizeof(content), file); ``` 3. 关闭文件读取文件内容后,需要关闭文件以释放资源。可以通过调用fclose函数来关闭文件指针: ```c int fclose(FILE* stream); ``` 其,stream是要关闭的文件指针。关闭文件后,不能再对该文件进行读取或写入操作。 完整的示例代码如下: ```c #include <stdio.h> #define MAX_SIZE 1000 int main() { FILE* file; char content[MAX_SIZE]; // 打开文件 file = fopen("example.txt", "r"); if (file == NULL) { printf("无法打开文件!\n"); return 1; } // 读取文件内容 fgets(content, sizeof(content), file); printf("文件内容:\n%s", content); // 关闭文件 fclose(file); return 0; } ``` 以上就是在C语言读取文件字符串的方法。希望能对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值