#include <iostream> #include <fstream> #include <string> #include <map> #include <SimpleIni.h> using namespace std; int main() { map<string, string> config; CSimpleIniA ini; ini.LoadFile("config.ini"); string filename = ini.GetValue("Section1", "filename", ""); string txt = ini.GetValue("Section1", "txt", ""); config["filename"] = filename; config["txt"] = txt; ofstream file(config["filename"]); if (file.is_open()) { file << config["txt"]; file.close(); cout << "文件已成功生成!" << endl; } else { cout << "无法创建文件。" << endl; } return 0; }
时间: 2023-06-18 12:04:34 浏览: 209
这是一个使用 SimpleIni 库读取 INI 配置文件,并根据配置文件中的内容生成指定文件的 C++ 程序。程序的主要流程如下:
1. 创建一个 map 对象,用于存储配置文件中的键值对。
2. 创建一个 CSimpleIni 对象,用于读取 INI 配置文件。
3. 使用 ini.LoadFile() 方法加载配置文件。
4. 使用 ini.GetValue() 方法获取配置文件中指定键的值,并将其存储到 map 对象中。
5. 使用 ofstream 对象创建指定的文件。
6. 如果文件创建成功,使用 file << config["txt"]; 将 map 中的 txt 值写入文件中。
7. 关闭文件,并输出成功信息;如果文件创建失败,则输出错误信息。
需要注意的是,程序中使用了 SimpleIni 库来读取 INI 配置文件,因此需要安装该库并将其包含在程序中。
相关问题
将这段代码升级成支持多行文本内容 :#include <iostream> #include <fstream> #include <string> #include <map> #include <SimpleIni.h> using namespace std; int main() { map<string, string> config; CSimpleIniA ini; ini.LoadFile("config.ini"); string filename = ini.GetValue("Section1", "filename", ""); string txt = ini.GetValue("Section1", "txt", ""); config["filename"] = filename; config["txt"] = txt; ofstream file(config["filename"]); if (file.is_open()) { file << config["txt"]; file.close(); cout << "文件已成功生成!" << endl; } else { cout << "无法创建文件。" << endl; } return 0; }
可以使用 stringstream 来处理多行文本内容,修改后的代码如下:
```cpp
#include <iostream>
#include <fstream>
#include <string>
#include <map>
#include <SimpleIni.h>
#include <sstream>
using namespace std;
int main() {
map<string, string> config;
CSimpleIniA ini;
ini.LoadFile("config.ini");
string filename = ini.GetValue("Section1", "filename", "");
config["filename"] = filename;
string txt = ini.GetValue("Section1", "txt", "");
stringstream txt_stream(txt);
string line;
while (getline(txt_stream, line)) {
config["txt"] += line + "\n";
}
ofstream file(config["filename"]);
if (file.is_open()) {
file << config["txt"];
file.close();
cout << "文件已成功生成!" << endl;
}
else {
cout << "无法创建文件。" << endl;
}
return 0;
}
```
这样,我们可以通过读取 config.ini 文件中的 `txt` 字段,将其中的多行文本内容读取到 `config["txt"]` 字符串中,并在写入文件时将其按行写入。其中,使用了 stringstream 来实现文本行的读取和拼接。
#include<iostream> #include<cmath> #include<ctime> #include<cstdio> #include<fstream> #include<algorithm> #include<deque> #include<queue> #include<string> #include<map> #include<stack> #include<set> //#include<windows.h> using namespace std; int main() { int a[4][4],b[16]= { 0 } ,k=0; srand(time(0)); for (int i=0;i<4;i++) { for (int j=0;j<4;j++) { a[i][j]=rand()%10; if(a[i][j]%2==1) { b[k]=a[i][j]; ++k; } } } for (int i=0;i<k;++i) { cout<<b[i]<<" "; } return 0; }
这是一个 C++ 的程序,它生成一个 $4\times4$ 的矩阵 $a$,并将其中的奇数存入数组 $b$ 中,最后输出 $b$ 数组的内容。具体实现过程是:首先通过 `srand(time(0))` 函数初始化随机数种子,接着用 `rand()%10` 生成 $0$ 到 $9$ 之间的随机整数填充矩阵 $a$,如果矩阵中的元素是奇数,则将其存入数组 $b$ 中,最后依次输出 $b$ 数组中的元素。
阅读全文