用C++编辑文本文件
Edit text File in C++
我试图通过c++编辑文本文件中的一个特定值。我的方法是将所有文本值复制到数组中。编辑我想要的内容,然后覆盖旧文件。一切顺利,直到:
int nm=0;
while (nm < arraysize) {
myfile << array1[nm];
nm++;
}
文件不会更改或添加新值。这是全功能
void receptionist::edit_room(int pre1) {
fstream myfile ("booked.txt");
int newroom_num;
cout << "Please Enter The New Room Number You wish : " << endl;
cin >> newroom_num;
const int arraysize=20;
int array1[arraysize];
int i=0;
if(myfile.is_open()) {
while(i < arraysize && myfile >> array1[i]) {
myfile >> array1[i];
i++;
}
myfile.clear();
int x=0;
while (x < arraysize) {
if ( pre1 == array1[x]) {
array1[x] = newroom_num;
break;
}
x++;
}
int nm=0;
while (nm < arraysize ) {
if (array1[nm]> -1) { // this is how i fixed the garbage values
myfile << array1[nm] << endl;
nm++;
}
else {
break;
}
}
myfile.close();
}
else {
cout << "Couldn't Open " << endl ;
}
};
点1:
while(!myfile.eof())
{
myfile >> array1[i];
i++;
}
更好的方法是:
while( i < arraysize && myfile >> array1[i])
{
i++;
}
第2点:
while (x<= arraysize){
将<=
更改为<
,因为array1[arraysize]
是越界访问。
第3点:
此外,IMO您应该在写入文件时删除此复选框。
while (array1[nm]!= EOF){ // remove it.
相反:
while (nm < arraysize) { // not <=
myfile << array1[nm];
nm++;
}
相关文章:
- 文本文件中的单词链表
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 如何将内容数组写入文本文件?
- 无法通过空白将文本文件行分隔为矢量
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- C++将文本文件中的数据读取到结构数组中
- 在指针的帮助下,文本文件中单词的频率
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 将值从二维数组输出到文本文件
- 如何使用 c++ 实现并发文件/文本编辑?
- 我需要转换一些代码,以便它适用于输入和输出文件文本
- 通过套接字发送二进制文件.文本文件有效,其他文件无效
- 将大型数据文件拆分为多个小文件(文本格式)
- 如何读取输入文件(文本文件)并将输入验证为有效整数
- 从文本文件/文本流中读取Q字符串错误
- 从文本文件(文本解析器)C++中读取行和列的逻辑
- 如何将*.css文件(文本文件)的内容与附加信息存储在新文件中?
- 关于内存映射文件和使用大文件文本编辑器
- 如何在读取文件文本时跳过"n"
- 使用libzip从.zip获取文件(文本除外)