帮我写一段c++代码,使用while(cin.get(ch))
时间: 2024-05-25 19:16:01 浏览: 10
下面是使用while(cin.get(ch))的C++代码示例:
#include <iostream>
using namespace std;
int main() {
char ch;
while (cin.get(ch)) {
// 在这里进行处理
cout << ch;
}
return 0;
}
在这个示例中,使用while循环和cin.get()方法从标准输入读取字符,并将其打印到控制台上。您可以在循环中添加自己的代码,以根据需要对输入进行处理。
相关问题
帮我写一段c++代码,使用while(cin.get(ch))读入字符串并储存在字符型数组line中
以下是使用while(cin.get(ch))读入字符串并储存在字符型数组line中的C++代码:
```c++
#include <iostream>
using namespace std;
int main() {
char line[100];
char ch;
int i = 0;
while (cin.get(ch)) {
if (ch == '\n') break;
line[i] = ch;
i++;
}
line[i] = '\0';
cout << "The string you entered is: " << line << endl;
return 0;
}
```
在这段代码中,我们定义了一个字符型数组line,用来存储输入的字符串。我们使用while(cin.get(ch))循环读入字符,如果读入的字符是换行符,就跳出循环。将读入的字符存储在line数组中,同时使用一个计数器i来记录存储的位置。最后,我们在line数组的末尾加上一个空字符'\0',以表示字符串的结束。最后输出读入的字符串。
#include<bits/stdc++.h> using namespace std; enum Token_value { NAME, NUMBER, END, PLUS = '+', MINUS = '-', MUL = '', DIV = '/', PRINT = ';', ASSIGN = '=', LP = '(', RP = ')' }; Token_value get_token(); double error(const string& s); double expr(bool get); double term(bool get); double prim(bool get); Token_value curr_tok = PRINT; double number_value; string string_value; map<string, double> table; int no_of_errors; int main() { table["pi"] = 3.1415926535897932385; table["e"] = 2.7182818284590452354; while (cin) { get_token(); if (curr_tok == END) break;// if (curr_tok == PRINT) continue;// cout << expr(false) << "\n"; } return no_of_errors; } Token_value get_token() { char ch = 0; // cin >> ch; do{ if(!cin.get(ch)) return curr_tok = END; }while (ch!='\n' && isspace(ch)); switch(ch){ case ':': case '\n': return curr_tok = PRINT; } 中各函数的作用
这段代码是一个简单的解释器,可以解析一些简单的数学表达式,如加减乘除等。下面是各个函数的作用:
- `Token_value get_token()`: 该函数用于获取下一个 token(即表达式中的一个基本单元),并更新全局变量 `curr_tok`。具体的 token 类型有 `NAME`(变量名)、`NUMBER`(数字)、`END`(结束符)、`PLUS`(加号)、`MINUS`(减号)、`MUL`(乘号)、`DIV`(除号)、`PRINT`(分号)、`ASSIGN`(赋值符号)、`LP`(左括号)和 `RP`(右括号)。
- `double error(const string& s)`: 该函数用于报告一个错误,并返回一个默认值 1.0。
- `double expr(bool get)`: 该函数用于解析一个表达式,将其计算出来并返回结果。如果 `get` 为 `true`,则在解析表达式之前会先获取一个 token。
- `double term(bool get)`: 该函数用于解析一个项,将其计算出来并返回结果。如果 `get` 为 `true`,则在解析项之前会先获取一个 token。
- `double prim(bool get)`: 该函数用于解析一个基本单元,将其计算出来并返回结果。如果 `get` 为 `true`,则在解析基本单元之前会先获取一个 token。
- `int main()`: 该函数是程序的主函数,其中定义了变量表 `table`,并且通过循环不断获取用户输入的表达式并解析计算,直到遇到结束符为止。
- 在 `main()` 函数中,通过调用 `get_token()` 函数获取下一个 token,并根据不同的 token 类型执行不同的操作。如果是结束符,则跳出循环;如果是分号,则继续循环;否则,调用 `expr(false)` 函数计算表达式的值,并输出结果。
总体来说,这段代码的逻辑比较简单,但其中涉及了一些 C++ 的语法和库函数的使用,需要有一定的编程基础才能看懂。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)