C语言输入字符用法介绍(c语言输入字符串)

C语言的基础是在输入和输出上。其中输入字符是使用较多的一个操作,它涉及到的方面也是很广泛的。本文将从多个方面对C语言的字符输入进行详细的阐述,从而使读者更好地理解和应用。

一、基础输入语句

在C语言中,最基础的字符输入语句是scanf,它可以读取标准输入设备(默认为键盘)上用户输入的数据。它的原型如下:

    int scanf ( const char * format, ... );

其中,第一个参数是格式化字符串,用来描述参数的数据类型和读取方式。它包含了多个特定的格式化符号,例如:%d表示读取整数,%f表示读取浮点数,%c表示读取单个字符,%s表示读取字符串等等。

下面是一个示例,演示如何使用scanf读取用户输入的两个整数并相加:

    int a, b;
    printf("请输入两个整数:");
    scanf("%d %d", &a, &b);
    printf("%d + %d = %dn", a, b, a+b);

该程序运行时,会在屏幕上打印出”请输入两个整数:”,用户可以在终端中输入两个整数,程序将对它们进行加法运算,并打印出结果。

二、使用getchar读取单个字符

除了scanf,我们还可以使用getchar函数来逐个读取标准输入设备上的字符,该函数的原型如下:

    int getchar(void);

它的返回值是ASCII码值,如果读到文件结尾(EOF),则返回-1。

下面是一个示例,演示如何使用getchar读取用户输入的字符:

    char c;
    printf("请输入一个字符:");
    c = getchar();
    printf("你输入的字符是:%cn", c);

该程序运行时,会在屏幕上打印出”请输入一个字符:”,用户可以在终端中输入任意字符,程序将读取它并打印出来。

三、使用fgets读取一个字符串

不同于getchar函数只能读取一个字符,fgets函数则可以读取一个由用户输入的完整字符串,包括空格和回车符。该函数的原型如下:

    char *fgets(char *str, int n, FILE *stream);

其中,第一个参数是指向一个字符数组的指针,它保存了读取到的字符串;第二个参数是读取字符数的上限;第三个参数是指向文件流的指针,通常可以使用标准输入输出文件指针stdin。返回值是指向输入字符流的指针,如果出现错误或到达文件结尾,则返回NULL。

下面是示例代码,演示如何使用fgets读取一个字符串并打印出来:

    char str[100];
    printf("请输入一个字符串:");
    fgets(str, 100, stdin);
    printf("你输入的字符串是:%s", str);

该程序运行时,会在屏幕上打印出”请输入一个字符串:”,用户可以在终端中输入任意字符串,程序将读取它并打印出来。

四、使用fgetc读取单个字符

类似于getchar函数,我们还可以使用fgetc函数来逐个读取指定文件流中的字符。该函数的原型如下:

    int fgetc ( FILE * stream );

其中,stream参数是指向文件流的指针,函数返回读取到的字符,如果到达文件结尾,则返回EOF。

下面是一个示例,演示如何使用fgetc从文件中读取单个字符并输出:

    FILE *fp = fopen("test.txt", "r");
    if(fp == NULL) {
        printf("文件打开失败");
        exit(1);
    }
    char c;
    while ((c = fgetc(fp)) != EOF) {
        printf("%c", c);
    }
    fclose(fp);

该程序打开一个名为test.txt的文件,并从中读取每个字符并打印在屏幕上。

五、读取其他类型的数据

除了上述提到的方法,我们还可以使用scanf和sscanf读取其他类型的数据。例如,要读取一个二维数组,可以这样写:

    int a[3][3];
    for(int i=0; i<3; i++) {
        for(int j=0; j<3; j++) {
        scanf("%d", &a[i][j]);
        }
    }

此外,我们还可以使用sscanf把一个字符串解析成多个值,例如:

    char str[] = "123,456,789";
    int a, b, c;
    sscanf(str, "%d,%d,%d", &a, &b, &c);
    printf("%d %d %dn", a, b, c);

该代码的输出结果为”123 456 789″。

结语

本文从基础输入语句、使用getchar读取单个字符、使用fgets读取一个字符串、使用fgetc读取单个字符、读取其他类型的数据几方面详细地阐述了C语言输入字符的多种方法。

在实际编程中,根据具体需要选择恰当的输入方法,可以提高程序的效率和可读性。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平