默认计划
491人加入学习
(0人评价)
【研发工程师】C语言程序设计
价格 ¥ 970.00
该课程属于 名企研发核心能力课 请加入后再学习

cppreference权威参考。

查:头文件、函数原型。

----------------------------

函数原型:

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

format:格式控制字符串

用char *format接收字符数组

printf("%d %s %c",) 的双引号表示是字符串。

... : 可变参列表(传任意多个参数)

return : 输出字符的数量

---------------------------

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

return : 成功读入的参数个数

scanf返回值为0 :是合法情况。表示成功读入0个参数 如:scanf("Hello"); 读入的参数没有给任何变量。

scanf返回值为-1:不合法,读入失败

 

循环读入:

while(scanf("") != EOF) { }    // EOF值为-1

Ctrl +Z停止 让scanf返回值为-1

Ctrl + C停止:结束当前进程。os层面强制停止

 

EOF: end of file 文件末尾,隐藏的文件描述符。用来识别是文件的末尾。

Linux:一切皆文件

-------------------

sprintf(字符数组首地址, format, ...):将标准输出打印到字符串(字符数组)中

return成功打印字符的数量

 

fprintf(字符数组首地址, format, ...):将标准输出打印到 文件 中

return成功打印字符的数量

------------

空格、换行是分隔符。

printf()的%c能接收读入空格和换行,ASCII里的字符都能接收。

char ch[10];
scanf("%d%s", &a, ch);
printf("a = %d, ch = %c\n", a, ch[0]);    // 此方式为工程开发中读入字符的用法

%s(除了空格,换行,tab)

 

scanf("%[^\n]s", str);    // 异或\n,正则表达式

[ ]是字符匹配集:只能匹配集合中的字符,否则会退出。需配合getchar( ); 否则会造成读入死循环。

 

比如%[a-z]s  只能读入a-z的字符

// 1.test.c
#include <stdio.h>

int main() {
    int n;
    while (scanf("%d", &n) != EOF) {    // 循环读入
        printf(" has %d digits!\n", printf("%d", n));
    }
    return 0;
}
// 2.test.c
#include <stdio.h>

int main() {
    char str[100] = {0};
    while (scanf("%[^\n]s", str) != EOF) {
        getchar();    // 吞掉循环读入最后输入的\n,否则会造成无限死循环
        printf(" has %d chars!\n", printf("%s", str));    // 输出字符串的字符数
    }
    return 0;
}

 

[展开全文]

一、入门基础

   输出函数:

    printf:   头文件:stdio.h

                 原型:int  printf(const char *format, ...);

                int sprintf(char[], const char *format, ...);

   scanf: 头文件: stdio.h

             原型: int scanf(const char *format, ...);        crtl + z 表示-1

   scanf:%c 可读所有字符,%s 可读除分隔符外字符串,scanf("%[^\n]s",str) != EOF,标准输入 字符串 + '/n' 。 需要getchar() 强行吞掉缓冲区一个字符

   《C 语言核心技术(原书第2版)》

 

  

 

 

[展开全文]

授课教师

C++算法工程师

课程特色

视频(31)