《C++ Primer》十章练习题单词转换word_transform.cpp

>E:\vcproject\word10.3\Debug\word10.3.exe : fatal error LNK1120: 1 个无法解析的外部命令

>word.obj : error LNK2019: 无法解析的外部符号 "class std::basic_ifstream<char,struct std::char_traits<char> > & __cdecl open_file(class std::basic_ifstream<char,struct std::char_traits<char> > &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?open_file@@YAAAV?$basic_ifstream@DU?$char_traits@D@std@@@std@@AAV12@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z),该符号在函数 _main 中被引用

解决方案:函数ifstream& open_file(ifstream&, const string&);在工程中没有实现;

ifstream& open_file(ifstream&mapfile, const string&filename)
{
 mapfile.close();
 mapfile.clear();   //将流设置为有效状态
 mapfile.open(filename.c_str()); //C风格的char
 return mapfile;
}

 1》当我 文件》新建》项目》Visual C++ 空项目word10.3》在源文件中添加》新建文件》C++文件(.cpp)》把第十章的习题word_transform.cpp全部复制进去》生成 出现如下问题。

2》重新生成 成功

3》运行之后

弹出对话框:word10.3.exe 中的 0x7665b9bc 处有未经处理的异常: Microsoft C++ 异常: 内存位置 0x0044f0ec 处的 std::runtime_error。

解决方案:这是因为int main(int argc, char **argv)需要的两个参数,打开文件trans-map trans-text两个文件

4》打开Microsoft Visual Studio 2010》Visual Studio Tools》Visual Studio 命令提示(2010)

      a. 进入我们工程文件生成word10.3.exe的位置》进入盘比如E盘   e:、 进入文件夹 cd

      b. 把文件trans-map trans-text拷进目录word10.3.exe一个目录下,在命令指示符输入 >word10.3 trans-map trans-text 按Enter就会出现《C++ Primer》十章练习题单词转换word_transform.cpp_第1张图片

5》分析一下代码

你可能感兴趣的:(《C++ Primer》十章练习题单词转换word_transform.cpp)