从终端获取字符串的例子代码

本文提供了一个在Linux系统下使用C语言从终端读取整行字符串的代码示例,该示例已经过测试,适用于开发和学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里展示如何从终端获取一整行字符串的代码例子,已在linux下测试通过,请仔细阅读代码:

/**
 * 从标准输入读取一行数据的测试
 * @param char* prompt 提示信息
 * @param char* line 终端读取的字符串保存在此
 * @param int count 可读取的字符串长度,
 */
char* get_line_console(char* prompt, char* line,  int count){
 
    int i; 
    // getchar();    // linux下需要调用getchar()方法阻塞后,才能在控制台输入(这块需要再仔细验证一下)
    printf("%s\n", prompt);

    if(fgets(line, count, stdin) != NULL && *line != '\n'){
        // fgets函数最大读取 count - 1个字符,或者在遇到第一个换行符为止。
        // fgets会添加\0到末尾。
        // fgets遇到换行符,会把它存储到字符串中
        // 
        
        i = 0;
        while(*line != '\n' && *line != '\0'){
            // 当line中的字符不是换行也不是\0时,进行循环计数
            //printf(">>> 输入的字符: %d, %c, (%p)\n", i, *line, line);
            i++;
            line
### 如何使用Python从终端读取字符数组 在 Python 中,可以通过标准输入流 `sys.stdin` 或内置函数 `input()` 来实现从终端读取数据的功能。以下是具体方法: #### 方法一:通过 `input()` `input()` 函数用于接收来自用户的单行字符串输入。如果需要获取多行输入并将其转换为字符数组,则可以多次调用该函数或将结果拆分为列表。 ```python # 获取一行输入并转化为字符数组 line = input("请输入一行字符:") char_array = list(line.strip()) # 将字符串转为字符数组 print(char_array) ``` 上述代码会提示用户输入一行字符,并将这行字符存储到一个字符数组中[^3]。 #### 方法二:通过循环与 `sys.stdin` 当需要处理大量或多行输入时,可利用 `sys.stdin.readlines()` 或逐行迭代的方式完成操作。 ```python import sys # 多行输入直到 EOF (Ctrl-D/Ctrl-Z),每行为一个元素存入列表 lines = [] for line in sys.stdin: lines.append(list(line.strip())) # 转化成字符数组形式保存每一行 print(lines) ``` 此脚本将持续接受控制台传来的所有行作为输入,直至遇到文件结束符(EOF),之后把它们逐一解析为字符数组的形式输出[^4]。 --- ### 完整示例程序 下面提供了一个完整的例子来展示如何结合以上两种方式工作: ```python def main(): import sys choice = int(input("选择模式(1-单行/2-多行): ")) if choice == 1: single_line_input() elif choice == 2: multi_lines_input(sys.stdin) def single_line_input(): """ 单行输入 """ line = input("请输入一行字符: ") char_array = list(line.strip()) print(f"您输入的字符数组是 {char_array}") def multi_lines_input(stream): """ 多行输入 """ print("请输入多行字符, 输入 Ctrl+D 结束.") lines = [] try: for line in stream: chars = list(line.strip()) if chars: # 非空才加入 lines.append(chars) except Exception as e: pass finally: print(f"您的多行字符数组如下:\n{lines}") if __name__ == "__main__": main() ``` 这段代码定义了两个功能——分别针对单行和多行情况下的字符数组构建过程进行了封装,并提供了友好的交互界面供使用者决定采用哪种方式进行录入[^5]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会C、Java多种开发语言的金哥

您的鼓励是我创作的动力源泉!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值