我也在找第一个问题。
第二个问题(没有现成的库函数):
关于控制台的函数都在 winconh 里。
#include <Windowsh>#include <iostream>
bool GotoXY(short x, short y) {
return SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), {x, y});
}
int main() {
GotoXY(10, 10);
std::cout << " (10, 10)";
GotoXY(0, 0); // 从零算起的
return 0;
}
因为getchar()函数的功能是从标准输入读入一个字符,并且标准输入函数getchar()是行缓冲函数,是带有缓冲区的。
当输入一个字符串“abcde”时,输入被暂存在缓冲区中,直到输入“回车键”才能把所输入的字符录入到内存中,而此时只能录入一个字符,所以录入的是第一个字符'a'了。程序无法进入循环。所以循环次数为0。
扩展资料
getchar是读入函数的一种。它从标准输入里读取下一个字符,相当于getc(stdin)。返回类型为int型,为用户输入的ASCII码或EOF。
getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回,getch返回值是用户输入的ASCⅡ码,出错返回-1。
getche这个函数与前两上类似,功能也相近,都是输入一个字符,返回值同样是输入字符的ASCII码,但不同的是,此函数在输入后立即从控制台取字符,不以回车为结束(带回显)。
参考资料来源:百度百科-getchar
#include <stdioh>
int main(int argc, char argv[])
{
char str1[128] = {0};
char str2[128] = {0};
char result = "";
int re = 0;
printf("请输入第一个待比较的字符串:\n");
scanf("%s", str1);
printf("请输入第二个待比较的字符串:\n");
scanf("%s", str2);
re = strcmp(str1, str2);
if (0 == re)
result = "等于";
else if (re > 0)
result = "大于";
else
result = "小于";
printf("字符串[%s] %s 字符串[%s]\n", str1, result, str2);
return 0;
}
java 用io流怎么输入字符串 如果从键盘输入,如下: BufferedReader in = new BufferedReader(new InputStreamReader(Systemin)); inreadLine(); 从键盘只能读取一行字符串。
1、可以使用getch()函数读取字符。
函数用途:从控制台读取一个字符,但不显示在屏幕上
函数原型:int getch(void)
返回值:读取的字符
getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回, getch返回值是用户输入的ASCII码,出错返回-1。输入的字符不会回显在屏幕上。getch函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行。
2、例如:
char ch;
ch=getch();
用ch=getch();会等待用户按下任意键之后,把该键字符所对应的ASCII码赋给ch,再执行下面的语句。
#include<iostream>
#include<string>
#include<vector>
#include<asserth>
#define MAXWORDS 100
#define MAXLINES 100
using std::string;
using std::vector;
using std::cin;
using std::cout;
using std::endl;
int getlines(string lines);
int main()
{
vector<string> lines;
for (int i = 0; i < MAXLINES; ++i){
cout << "输入一行回车结束,结束输入按EOF" << endl;
string s;
if (getlines(&s) == 0)
break;
linespush_back(s);
}
unsigned int nlines, n; //第nlies行,第n个字
cout << "输入第n行第n个字母,中间空格" << endl;
cin >> nlines >> n;
assert(nlines <= linessize() && n <= lines[nlines-1]size());//输入不合法用来报警的
cout << lines[nlines - 1][n - 1];
}
int getlines(string lines)
{
char s[MAXWORDS];
int i;
for (i = 0; i < MAXWORDS && (s[i] = getchar()) != '\n' && s[i]!= EOF; ++i)
;
if (s[i] == '\n'){
s[i] = '\0';
lines = s;
return 1;
}
else
return 0;
}
import javaioFileNotFoundException;
import javaioPrintWriter;
import javautil;
public class PrintWriterTest
{
public static void main(String[] args) throws FileNotFoundException
{
Scanner in = new Scanner(Systemin);
// get file name
Systemoutprint("Input filename:");
String filename = innextLine();
// build PrintWriter
PrintWriter out = new PrintWriter(filename);
//
Systemoutprint("Input content you want to save, 'Q' for quit");
String line = innextLine();
while(!lineequals("Q"))
{
outprintln(line);
line = innextLine();
}
outclose();
inclose();
}
}
以上就是关于c++如何从控制台读取已经输入的字符。全部的内容,包括:c++如何从控制台读取已经输入的字符。、若输入字符串:abcde<回车>,则以下while循环体将执行 _____ 次. while((ch=getchar())=='e') printf("*");、编写一个程序,实现对两个字符的比较。 提示:分别从控制台获取用户输入的两个字符串。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)