将数据插入C 中的文本文件中
Inserting Data into text file in C++
i将数据插入C 程序中使用的文本文件
数据是这样的,但应该以可读形式。
这是程序
#include<iostream>
#include <fstream>
#include <Windows.h>
#include <string>
using namespace std;
class Record {
private:
int id;
char name[50];
public:
void insert_data();
void show_data();
};
void Record::insert_data() {
cout << "ntName: ";
cin.ignore();
cin.getline(name, 50);
cout << "ntID: ";
cin >> id;
}
void Record::show_data() {
cout << "ntName: ";
cout << name;
cout << "ntID: ";
cout << id;
}
void write_info();
void show_info();
int main() {
//write_info();
show_info();
cout << endl;
system("pause");
}
void write_info() {
Record info;
ofstream data("data.txt", ios::app);
info.insert_data();
data.write((char *)(&info), sizeof(Record));
data.close();
} // Function Ends here
void show_info() {
Record info;
ifstream data("data.txt", ios::app);
data.read((char *)(&info), sizeof(Record));
info.show_data();
data.close();
}
为什么将这种类型的数据(不可读取)输入文本文件?请检查我的程序,如果由于此不可读取数据而出现错误在文本文件中。
ifstream data("data.txt", ios::app);
ios::app
是附录标志。不要与ifstream
一起使用。由于您正在读取二进制数据,因此使用ios::binary
标志ofstream
和ifstream
。
显然,您想将数据保存在文本形式(明智的选择)中。使用data >> info.name
和data >> info.id
代替编写数据。
您也可以使用std::string name
而不是char name[50]
。如果要阅读整行,请使用std::getline
。
class Record {
public:
int id;
std::string name;
void Record::insert_data() {
cout << "Name: ";
getline(cin, name); //reads the whole line
cout << "ID: ";
cin >> id;
}
void Record::show_data() {
cout << "Name: " << name << ", ID: " << id << "n";
}
};
void write_info() {
Record info;
info.insert_data();
ofstream data("data.txt", ios::app);
data << info.name << "n" << info.id << "n";
}
void show_info() {
Record info;
ifstream data("data.txt");
while(true) {
if(!data.good()) break;
data >> info.name;
if(!data.good()) break;
data >> info.id;
info.show_data();
}
}
相关文章:
- 文本文件中的单词链表
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 如何将内容数组写入文本文件?
- 无法通过空白将文本文件行分隔为矢量
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- C++将文本文件中的数据读取到结构数组中
- 在指针的帮助下,文本文件中单词的频率
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 将值从二维数组输出到文本文件
- 如何使用 c++ 实现并发文件/文本编辑?
- 我需要转换一些代码,以便它适用于输入和输出文件文本
- 通过套接字发送二进制文件.文本文件有效,其他文件无效
- 将大型数据文件拆分为多个小文件(文本格式)
- 如何读取输入文件(文本文件)并将输入验证为有效整数
- 从文本文件/文本流中读取Q字符串错误
- 从文本文件(文本解析器)C++中读取行和列的逻辑
- 如何将*.css文件(文本文件)的内容与附加信息存储在新文件中?
- 关于内存映射文件和使用大文件文本编辑器
- 如何在读取文件文本时跳过"n"
- 使用libzip从.zip获取文件(文本除外)