尝试对控制台功能有一些基本的了解。我遇到了问题,请考虑以下内容......
#include "stdafx.h"
#include<iostream>
#include<conio.h>
using namespace std;
/*
This is a template Project
*/
void MultiplicationTable(int x);
int main()
{
int value = 0;
printf("Please enter any number \n\n");
getline(cin, value);
MultiplicationTable(value);
getchar();
return 0;
}
我实际上是基于http://www.cplusplus.com/doc/tutorial/basic_io/的代码。当我编译应用程序时,我的IDE无法识别getline()。我收到错误
'getline': identifier not found
现在看一下这段代码
#include "stdafx.h"
#include<iostream>
#include<conio.h>
using namespace std;
/*
This is a template Project
*/
void MultiplicationTable(int x);
int main()
{
int value = 0;
printf("Please enter any number \n\n");
cin>>value;
MultiplicationTable(value);
getchar();
return 0;
}
当我执行这行代码时,控制台窗口会打开并立即关闭。我想我错过了关于cin的事情。我知道它划分了空格,但我不知道还有什么。我应该用什么来输入,让我的生活更轻松。
答案 0 :(得分:3)
函数getline()
在字符串头中声明。因此,您必须添加#include <string>
。
它定义为istream& getline ( istream& is, string& str );
,但您使用int
而不是字符串对象来调用它。
关于你的第二个问题:
当我执行这行代码时,控制台窗口会打开并立即关闭
当你的程序到达函数'\n'
时,你的输入中可能还有一个getchar()
个字符(我假设你把它放在那里,所以你的窗口没有关闭)。你必须刷新你的流。一个简单的解决方法是,而不是getchar()
,添加行
int c;
while((c = getchar()) != '\n'){}
这将刷新您的流,直到下一个换行符。
备注:conio.h
不是c ++标准的一部分而已过时。
答案 1 :(得分:3)
getline函数读取字符串,而不是整数:
#include <string>
#include <iostream>
using namespace std;
int main() {
string line;
getline( cin, line );
cout << "You entered: " << line << endl;
}
答案 2 :(得分:0)
你是exiting the program
之前可以查看结果,因为(我猜)你double-clicked
来自Windows资源管理器(或桌面)视图中的.exe file
才能执行。而是转到“开始”,“运行”,键入cmd.exe并打开命令窗口。导航到您的程序所在的位置。在命令行输入程序名称并执行。在intentionally
关闭命令窗口之前,它将保持打开状态。