请大家帮我看一下C++程序哪里编译出错了,我在编译时出错,但是不能运行,请高手指点一下,或帮我完善一下

如果我在D盘里创建一个名为aa.txt的文档,文档的内容如下:
天空 天空是蓝色的
大海 无边无际
在程序运行时如果我输入的字符串中 (包含)“天空”则程序输出来“天空是蓝的”
程序是:
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
string line,input,blank=" ",tmp,tmph;
while (1)
{
ifstream file("D:\\aa.txt");
cin>>input;
while (!file.eof())
{
getline(file,line);
int sp = line.find(blank);
tmp = line.substr(sp-4, 4 );
if(input.find(tmp) != string::npos)
{
int spg = line.find(blank);
tmph = line.substr( spg+1, line.length() );
cout<<tmph<<endl;
}

}
file.close();
}
return 0;
}

编译没有问题,运行时输入“天空”,可以输出“天空是蓝的”。
#include <stdio.h>
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
string line,input,blank=" ",tmp,tmph;
while (1)
{
ifstream file("D:\\aa.txt");
cin>>input;
while (!file.eof())
{
getline(file,line);
int sp = line.find(blank);
tmp = line.substr(sp-4, 4 );
if(input.find(tmp) != string::npos)
{
int spg = line.find(blank);
tmph = line.substr( spg+1, line.length() );
cout<<tmph<<endl;
}
}
file.close();
}
return 0;
}追问

我运行的怎么是这样的呢

追答

没有问题,是不是输入“大海”后面有空格?

追问

没有空格

追答

自己调试一下就可以了。我这边运行是没有问题的。

追问

哦,但是只能按着顺序输入,不能随意输入,比如先输入“大海”就不行了,你帮我看一下应该怎么改进

追答

你单独调试一下,看是那行代码有问题。我使用的是vc6环境。你使用这个vc6测试。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-24

一点都没有错,输入什么都没有错!我给你运行过了

追问

为什么我运行不了呢,你是不是用VC运行的,
你运行输出的“天空是蓝色的”前面怎么会有空格

追答

对,用VC运行的,你建工程建好了没有?这个我没有仔细看

VC++编译出错,错误代码:error C1189,请各位高手指点一下。
1.工程-》属性-》C\/C++-》代码生成-》运行时库:修改成: 多线程调试(\/MTd); (release版本也修改成 多线程(\/MT)2.工程-》属性-》常规-》MFC的使用:修改为:在静态库中使用 MFC 方法2不一定管用,PC机上的MFC(相对于EVC而言)程序都是多线程的(不信你照2修改试试,会出现找不到_b...

c++ 不会用,运行不出来,请高手指点一下,谢谢了,很急呀!
你重新建一个工程,把程序拷到新的工程里,然后编译运行一下,看行不行,如果不行,可能就是编译器的问题了,建议换一个编译器。

visual c++ 编译错误hello world!出错了!!求高手指点啊!!!
你的错误提示是不是“Compiling... ,Error spawning cl.exe”,是的话就检查你的VC++是安装在哪个盘下的,错误提示中的“CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目录\\VC98\\Bin”下面,你可以到相应的路径下找到这个应用程序。因此问题可以按照以下方法解决:打开vc界面点击VC“T...

为什么我的电脑运行不了visual c++程序
“CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目录\\VC98\\Bin”下面, 你可以到相应的路径下找到这个应用程序。方法一:因此问题可以按照以下方法解决:打开vc界面 点击VC“TOOLS(工具)”—>“Option(选择)” —>“Directories(目录)”重新设置“Excutable Fils、Include Files、 Lib...

救命啊~VC++为什么在家编得好好的,在学校不能运行
1、应该是有些资源文件没有拷造成的!楼主可以先把编译好的可执行程序拷贝到你机器的其它目录,试一试,看是否有问题!2、把程序拷贝到其他安装了VC的机器上,如果报错,出现Press Retry to debug the application,点击 Retry 进入VC看看是什么地方错了!3、把程序拷贝到其它没装VC的机器上,如果还有错...

c++程序无法运行 求指点!如果能跑出程序 追加50啊 湿兄~~
不知道你是要解决算法上问题,还是代码上的,你的代码有2处问题:1、stdlib库中abs()函数的参数要求为整型,你用的是浮点型,需要重新定义一个abs宏 define abs(a) = (a>0) ? a : (-a)2、这句for(int t=0;t<=3900;t=+300),是死循环(t=+300?),改为:for(int t=0;t<=...

求高手帮忙解决下面这个C++中的一个题目。看俺的代码哪里有错...
1.求个位数,直接用n%10就可以了,你那样子是求的最高位的值 2.既然你已经定了个位为7,直接给m赋7就可以了吧。3.你上面那样子算的时候,最后退出第一个while循环的时候,n是为0的,下面不能用这个n计算,你若是不断的用n\/=10,开始应该用个变量保存这个n的值 4.还有在main中,不能单单...

...more multiply defined symbols found,请高手指点
报错是说你的用到的变量重复定义了,检查下工程里其他文件是否已经定义了symbol变量。我的是VS 2008 试了你的code 是结果对的。当然我建的工程里只有你所写的code。没有其他文件。

C++在linux下G++编译报错“no matching function for call to ‘*...
代码号乱,好像不完整,初步分析如下:bool CBindVariableList::CopyToExtVarList(OCIError *pErr){ return ForEachItem(COraBindVariable::CopyToExtVar(),pErr);\/\/这里,CopyToExtVar函数的返回值,是一个bool类型,作为第一个参数传递进入ForEachItem函数 } 但是,bool CBindVariableList::ForEach...

C++编译错误unexpected end of file while looking for precompiled hea...
你重新设置一下系统环境变量的路径吧,估计是系统的路径被人修改了。。。

相似回答