c++如何从控制台读取已经输入的字符。

c++如何从控制台读取已经输入的字符。,第1张

我也在找第一个问题。

第二个问题(没有现成的库函数):

关于控制台的函数都在 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("*");、编写一个程序,实现对两个字符的比较。 提示:分别从控制台获取用户输入的两个字符串。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9532981.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存