问题描述
- c++文件流相关问题,编译通过,但是结果为什么却报错?
- 源码如下,这是书上的一个习题:
#pragma warning(disable: 4786)#include<map>#include<set>#include<iostream>#include<fstream>#include<string>using namespace std;void initialize_exclusion_set(set<string>&);void process_file(map<stringint>&const set<string>&ifstream&);void user_query(const map<stringint>&);void display_word_count(const map<stringint>&ofstream&);int main(){ ifstream ifile(""E:\vc\column.txt"");//这里哪出错了啊?? ofstream ofile(""E:\vc\column.map"");//折腾了一下午,快疯了啊! if(! ifile||!ofile) { cerr<<""Unable to open file --bailing out!n""; return -1; } set<string>exclude_set; initialize_exclusion_set(exclude_set); map<stringint>word_count; process_file(word_countexclude_setifile); user_query(word_count); display_word_count(word_countofile);}void initialize_exclusion_set(set<string>&exs){ static string _exclude_words[25]={the""and""but""that""then""are""been""can""a""could""did""for""of""had""have""him""his""her""its""is""were""which""when""with""would"" }; exs.insert(_exclude_words_exclude_words+25);}void process_file(map<stringint>&word_countconst set<string>&exclude_setifstream &ifile){ string word; while(ifile>>word) { if(exclude_set.count(word)) continue; word_count[word]++; }}void user_query(const map<stringint>&word_map){ string search_word; cout<<""Please enter a word to search:q to quit""; cin>>search_word; while(search_word.size()&&search_word!=""q"") { map<stringint>::const_iterator it; if((it=word_map.find(search_word))!=word_map.end()) cout<<""Found!""<<it->first<<""occurs""<<it->second<<""times.""<<endl; else cout<<search_word<<""was not found in text.""<<endl; cout<<""nAnother search?(q to quit)""; cin>>search_word; }}void display_word_count(const map<stringint>&word_mapofstream &os){ map<stringint>::const_iterator iter=word_map.begin()end_it=word_map.end(); while(iter!=end_it) { os<<iter->first<<""(""<<iter->second<<"")""<<endl; ++iter; } os<<endl;}
小弟新手,第一次发帖,不知道问题出在哪里。所以发帖,希望能够得到你的帮助,先谢谢
问题描述:
1:代码可以正常编译通过,但是那个黑框框(是叫控制台吗?)却报错输出:Unable to open file --bailing out!(可是我已经在目录下创建了column.txt文件了啊,文件里面也有内容的)
2:我确定已经在E:vc文件下面创建了column.txt文件。
3:还有一个信息不知道有没有用:奇怪的是,我把代码""E:vccolumn.txt"")中的column改成text却成功通过编译 运行结果也正常(之前学习输入输出流这一章节的时候,做过一个例题,是以text.txt命名的)
4:求助。。。
解决方案
你忘了字符转义了。路径分隔符 \
要用 \\
。
解决方案二:
不知道源码复制粘贴上去怎么变形了
解决方案三:
我转义了,用的两个斜杠,但是粘贴上去不知道为什么整个代码都变形了,
解决方案四:
仔细检查文件路径,文件名等是否完全一致。
解决方案五:
编译通过说明你没有语法问题
没有出结果说明不是逻辑错误
那只能是运行时错误
看看是不是文件的读写属性的问题
解决方案六:
不要沉啊啊啊啊啊。。。。。。
解决方案七:
你是不是创建 column.txt 的这个文本编辑器还开着?文件处于锁定状态。
用 unlocker 工具检查一下。
时间: 2024-09-07 13:58:51