C语言获取整行输入的多种方法

在C语言中,有多种方法可以实现从标准输入流(stdin)中读取整行输入;最常见的方法是使用例如fgets()scanf()getchar()这些函数;

方法一:使用fgets()函数

fgets()函数可以从指定的文件中读取一行数据,常用于从标准输入读取用户的输入;

fgets()函数需指定最大字符数,当读取到文件结束符或读取到指定的最大字符数时,fgets()会停止读取;

示例代码

#include <stdio.h>

int main() {
    char input[10];
    fgets(input, 10, stdin);
    printf("输入的字符串为:%s\n", input);
}

程序运行结果

123456789abcdefg
输入的字符串为:123456789

这个示例中,输入的字符超数量过了10个,所以fgets()函数只读取了9个字符(还需存放'\0'字符);

方法二:使用scanf()函数

scanf()函数可以从标准输入中读取指定格式的数据,可以使用%s格式符来读取一行字符串;

scanf()函数读取的字符串包含换行符,可以使用%[^\n]格式符来消除换行符;

示例代码

#include <stdio.h>

int main() {
    char input[255];
    scanf("%[^\n]", input);
    printf("输入的字符串为:%s\n", input);
}

程序运行结果

123 456 abc
输入的字符串为:123 456 abc

方法三:使用getchar()函数

getchar()函数可以从标准输入读取一个字符,通过循环读取字符直到读取到换行符时停止来实现整行读取;

示例代码

#include <stdio.h>

int main() {

    char input[255];
    int i = 0;
    int c = getchar();

    while (c != '\n') {
        input[i++] = c;
        c = getchar();
    }
    input[i] = '\0';

    printf("输入的字符串为:%s\n", input);
}

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/c-language-to-get-the-entire-line-of-input.html

分类: 计算机技术
推荐阅读:
Golang实现字符串的MD5加密 本文将使用 golang 自带的 crypto/md5 库实现MD5的字符串加密;
Python实现臭皮匠算法(Stooge Sort) 臭皮匠排序(Stooge Sort)是一种递归排序算法,是一种比较低效率的排序算法;
Python将二维数组进行顺时针旋转90度、180度、270度 本文将使用Python实现二维数组顺时针旋转,包括旋转90度、180度、270度;
VirtualBox菜单隐藏了怎么打开? 我们使用VirtualBox运行虚拟机后,可以通过视图菜单改变虚拟机的显示方式,其中包括全屏模式,无缝模式,自动缩放模式,使用了这些模式后,可能导致上方的菜单消失;
Rust:if this is intentional, prefix it with an underscore解决方法 编译Rust程序时提示:if this is intentional, prefix it with an underscore: `_x`,这表明存在一个未使用的变量 x,你可以将其删除或在变量名前添加一个下划线前缀;
Python实现快速排序(quick sort) 快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。