终结者兑换码忘记复制:c++编写一段可以将某一路径下的文本文件打开并且加入字符串的程序,写了一段可是出错了,高手进来帮帮忙!

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 02:25:34
#include <iostream>
#include <fstream>
main()
{const char* filespec;
std::cout<<"输入路径";
std::cin>>filespec;
std::fstream ioflie("filespec",std::ios::in|std::ios::out);
std::ofstream ofile("filespec",std::ios::app);
ofile<<"sdajfsdjkhfk";
}

const char* filespec;
出现了两个错误
1. filespec是一个野指针,没有初始化,没有指定的内存
不能往里面填入数据std::cin>>filespec;
2. *filespec是一个常量const,即filespec是指向常量
的指针,不能往里面赋值std::cin>>filespec。

const char* filespec; 应该改为:
char filespec[100];

std::fstream ioflie("filespec",std::ios::in|std::ios::out);
std::ofstream ofile("filespec",std::ios::app);
出现一个错误
3。一个文件不能同时被打开两次来进行写操作,
共享问题使得后一个打开操作失败

std::cout<<"输入路径";
std::cin>>filespec;
std::fstream ioflie("filespec",std::ios::in|std::ios::out);
std::ofstream ofile("filespec",std::ios::app);
出现一些非常规的写法,不值得推广
4. 你应该使用名字空间
using namespace std;

5. main() {...}没有返回值的系统会自动认为有整型返回值
应该有return XXX;在程序结束处。要么你就写void main(){...}

输入字符串前要分配好足够的空间,不然会对无法预知的区域进行操作导致程序崩溃。
应该这样:
char filespec[256];
std::cin>>filespec;