C语言教程 第8页

C 输入 & 输出

C 输入 & 输出 当我们提到输入时,这意味着要向程序填充一些数据。输入可以是以文件的形式或从命令行中进行。C 语言提供了一系列内置的函数来读取给定的输入,并根据需要填充到程序中。 当我们提到输出时,这意味着要在屏幕上、打印机上或任意文件中显示一些数据。C 语言提供了一系列内置的函数来输出数据到计算机屏幕上和保存数据到文本文件或二进制文件中。 标准文件 C 语言把所有的设备都当作文件。所以设备(比如显示器)被处理的方式与文件相同。以下三个文件会在程序执行时自动打开,以便访问键盘和屏幕。 标准文件 文件指针 设备 标准输入 stdin 键盘 标准输出 stdout 屏幕 标准错误 stderr 您的屏幕 文件指针是访问文件的方式,本节将讲解如何从屏幕读取值以及如何把结果输出到屏幕上。 getchar() & putchar() 函数 int getchar(void) 函数从屏幕读取下一个可用的字符,并把它返回为一个整数。这个函数在同一个时间内只会读取一个单一的字符。您可以在循环内使用这个方法,以便从屏幕上读取多个字符。 int putchar(int c) 函数把字符输出到屏幕上,并返回相同的字符。这个函数在同一个时间内只会输出一个单一的字符。您可以在循环内使用这个方法,以便在屏幕上输出多个字符。 请看下面的实例: #include <stdio.h> int main( ) { int c; printf( "Enter a value :"); c = getchar( ); printf( "\nYou entered: "); putchar( c ); return 0; } 当上面的代码被编译和执行时,它会等待您输入一些文本,当您输入一个文本并按下回车键时,程序会继续并只会读取一个单一的字符,显示如下: $./a.out <b>Enter a value :</b> this is test <b>You entered:</b> t gets() & puts() 函数 char *gets(char *s) 函数从 stdin 读取一行到 s 所指向的缓冲区,直到一个终止符或 EOF。 int puts(const char *s) 函数把字符串 s 和一个尾随的换行符写入到 stdout。 #include <stdio.h> int main( ) { char str[100]; printf( "Enter a value :"); gets( str ); printf( "\nYou entered: "); puts( str ); return...

C for 循环-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C for 循环

C for 循环 C 循环 for 循环允许您编写一个执行指定次数的循环控制结构。 语法 C 语言中 for 循环的语法: for ( init; condition; increment ) { statement(s); } 下面是 for 循环的控制流: init 会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句,只要有一个分号出现即可。 接下来,会判断 condition。如果为真,则执行循环主体。如果为假,则不执行循环主体,且控制流会跳转到紧接着 for 循环的下一条语句。 在执行完 for 循环主体后,控制流会跳回上面的 increment 语句。该语句允许您更新循环控制变量。该语句可以留空,只要在条件后有一个分号出现即可。 条件再次被判断。如果为真,则执行循环,这个过程会不断重复(循环主体,然后增加步值,再然后重新判断条件)。在条件变为假时,for 循环终止。 流程图 实例 #include <stdio.h> int main () { /* for 循环执行 */ for( int a = 10; a < 20; a = a + 1 ) { printf("a 的值: %d\n", a); } return 0; } 当上面的代码被编译和执行时,它会产生下列结果: a 的值: 10 a 的值: 11 a 的值: 12 a 的值: 13 a 的值: 14 a 的值: 15 a 的值: 16 a 的值: 17 a 的值: 18 a 的值: 19 C 循环

C 库函数 – time()-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 库函数 – time()

C 库函数 – time() C 标准库 – <time.h> 描述 C 库函数 time_t time(time_t *seconds) 返回自纪元 Epoch(1970-01-01 00:00:00 UTC)起经过的时间,以秒为单位。如果 seconds 不为空,则返回值也存储在变量 seconds 中。 声明 下面是 time() 函数的声明。 time_t time(time_t *t) 参数 seconds — 这是指向类型为 time_t 的对象的指针,用来存储 seconds 的值。 返回值 以 time_t 对象返回当前日历时间。 实例 下面的实例演示了 time() 函数的用法。 #include <stdio.h> #include <time.h> int main () { time_t seconds; seconds = time(NULL); printf("自 1970-01-01 起的小时数 = %ld\n", seconds/3600); return(0); } 让我们编译并运行上面的程序,这将产生以下结果: 自 1970-01-01 起的小时数 = 373711 C 标准库 – <time.h>

C 库函数 – mktime()-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 库函数 – mktime()

C 库函数 – mktime() C 标准库 – <time.h> 描述 C 库函数 time_t mktime(struct tm *timeptr) 把 timeptr 所指向的结构转换为一个依据本地时区的 time_t 值。 声明 下面是 mktime() 函数的声明。 time_t mktime(struct tm *timeptr) 参数 timeptr — 这是指向表示日历时间的 time_t 值的指针,该日历时间被分解为以下各部分。下面是 timeptr 结构的细节: struct tm { int tm_sec; /* 秒,范围从 0 到 59 */ int tm_min; /* 分,范围从 0 到 59 */ int tm_hour; /* 小时,范围从 0 到 23 */ int tm_mday; /* 一月中的第几天,范围从 1 到 31 */ int tm_mon; /* 月份,范围从 0 到 11 */ int tm_year; /* 自 1900 起的年数 */ int tm_wday; /* 一周中的第几天,范围从 0 到 6 */ int tm_yday; /* 一年中的第几天,范围从 0 到 365 */ int tm_isdst; /* 夏令时 */ }; 返回值 该函数返回一个 time_t 值,该值对应于以参数传递的日历时间。如果发生错误,则返回 -1 值。 实例 下面的实例演示了 mktime() 函数的用法。 #include <stdio.h>...

C 库函数 – strftime()-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 库函数 – strftime()

C 库函数 – strftime() C 标准库 – <time.h> 描述 C 库函数 size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr) 根据 format 中定义的格式化规则,格式化结构 timeptr 表示的时间,并把它存储在 str 中。 声明 下面是 strftime() 函数的声明。 size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr) 参数 str — 这是指向目标数组的指针,用来复制产生的 C 字符串。 maxsize — 这是被复制到 str 的最大字符数。 format — 这是 C 字符串,包含了普通字符和特殊格式说明符的任何组合。这些格式说明符由函数替换为表示 tm 中所指定时间的相对应值。格式说明符是: 说明符 替换为 实例 %a 缩写的星期几名称 Sun %A 完整的星期几名称 Sunday %b 缩写的月份名称 Mar %B 完整的月份名称 March %c 日期和时间表示法 Sun Aug 19 02:56:02 2012 %d 一月中的第几天(01-31) 19 %H 24 小时格式的小时(00-23) 14 %I 12 小时格式的小时(01-12) 05 %j 一年中的第几天(001-366) 231 %m 十进制数表示的月份(01-12) 08 %M 分(00-59) 55 %p AM 或 PM 名称 PM %S 秒(00-61) 02 %U 一年中的第几周,以第一个星期日作为第一周的第一天(00-53) 33 %w 十进制数表示的星期几,星期日表示为...

C 库函数 – gmtime()-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 库函数 – gmtime()

C 库函数 – gmtime() C 标准库 – <time.h> 描述 C 库函数 struct tm *gmtime(const time_t *timer) 使用 timer 的值来填充 tm 结构,并用协调世界时(UTC)也被称为格林尼治标准时间(GMT)表示。 声明 下面是 gmtime() 函数的声明。 struct tm *gmtime(const time_t *timer) 参数 timeptr — 这是指向表示日历时间的 time_t 值的指针。 返回值 该函数返回指向 tm 结构的指针,该结构带有被填充的时间信息。下面是 timeptr 结构的细节: struct tm { int tm_sec; /* 秒,范围从 0 到 59 */ int tm_min; /* 分,范围从 0 到 59 */ int tm_hour; /* 小时,范围从 0 到 23 */ int tm_mday; /* 一月中的第几天,范围从 1 到 31 */ int tm_mon; /* 月份,范围从 0 到 11 */ int tm_year; /* 自 1900 起的年数 */ int tm_wday; /* 一周中的第几天,范围从 0 到 6 */ int tm_yday; /* 一年中的第几天,范围从 0 到 365 */ int tm_isdst; /* 夏令时 */ }; 实例 下面的实例演示了 gmtime() 函数的用法。 #include <stdio.h>...

C 库函数 – localtime()-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 库函数 – localtime()

C 库函数 – localtime() C 标准库 – <time.h> 描述 C 库函数 struct tm *localtime(const time_t *timer) 使用 timer 的值来填充 tm 结构。timer 的值被分解为 tm 结构,并用本地时区表示。 声明 下面是 localtime() 函数的声明。 struct tm *localtime(const time_t *timer) 参数 timer — 这是指向表示日历时间的 time_t 值的指针。 返回值 该函数返回指向 tm 结构的指针,该结构带有被填充的时间信息。下面是 tm 结构的细节: struct tm { int tm_sec; /* 秒,范围从 0 到 59 */ int tm_min; /* 分,范围从 0 到 59 */ int tm_hour; /* 小时,范围从 0 到 23 */ int tm_mday; /* 一月中的第几天,范围从 1 到 31 */ int tm_mon; /* 月份,范围从 0 到 11 */ int tm_year; /* 自 1900 起的年数 */ int tm_wday; /* 一周中的第几天,范围从 0 到 6 */ int tm_yday; /* 一年中的第几天,范围从 0 到 365 */ int tm_isdst; /* 夏令时 */ }; 实例 下面的实例演示了 localtime()...

C 库函数 – strlen()-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 库函数 – strlen()

C 库函数 – strlen() C 标准库 – <string.h> 描述 C 库函数 size_t strlen(const char *str) 计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。 声明 下面是 strlen() 函数的声明。 size_t strlen(const char *str) 参数 str — 要计算长度的字符串。 返回值 该函数返回字符串的长度。 实例 下面的实例演示了 strlen() 函数的用法。 #include <stdio.h> #include <string.h> int main () { char str[50]; int len; strcpy(str, "This is w3cschool.cn"); len = strlen(str); printf("|%s| 的长度是 |%d|\n", str, len); return(0); } 让我们编译并运行上面的程序,这将产生以下结果: |This is w3cschool.cn| 的长度是 |20| C 标准库 – <string.h>

C 库函数 – ctime()-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 库函数 – ctime()

C 库函数 – ctime() C 标准库 – <time.h> 描述 C 库函数 char *ctime(const time_t *timer) 返回一个表示当地时间的字符串,当地时间是基于参数 timer。 返回的字符串格式如下: Www Mmm dd hh:mm:ss yyyy 其中,Www 表示星期几,Mmm 是以字母表示的月份,dd 表示一月中的第几天,hh:mm:ss 表示时间,yyyy 表示年份。 声明 下面是 ctime() 函数的声明。 char *ctime(const time_t *timer) 参数 timer — 这是指向 time_t 对象的指针,该对象包含了一个日历时间。 返回值 该函数返回一个 C 字符串,该字符串包含了可读格式的日期和时间信息。 实例 下面的实例演示了 ctime() 函数的用法。 #include <stdio.h> #include <time.h> int main () { time_t curtime; time(&curtime); printf("当前时间 = %s", ctime(&curtime)); return(0); } 让我们编译并运行上面的程序,这将产生以下结果: 当前时间 = Mon Aug 13 08:23:14 2012 C 标准库 – <time.h>

C 库函数 – difftime()-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C 库函数 – difftime()

C 库函数 – difftime() C 标准库 – <time.h> 描述 C 库函数 double difftime(time_t time1, time_t time2) 返回 time1 和 time2 之间相差的秒数 (time1 – time2)。这两个时间是在日历时间中指定的,表示了自纪元 Epoch(协调世界时 UTC:1970-01-01 00:00:00)起经过的时间。 声明 下面是 difftime() 函数的声明。 double difftime(time_t time1, time_t time2) 参数 time1 — 这是表示结束时间的 time_t 对象。 time2 — 这是表示开始时间的 time_t 对象。 返回值 该函数返回以双精度浮点型 double 值表示的两个时间之间相差的秒数 (time2 – time1)。 实例 下面的实例演示了 difftime() 函数的用法。 #include <stdio.h> #include <time.h> int main () { time_t start_t, end_t; double diff_t; printf("程序启动...\n"); time(&start_t); printf("休眠 5 秒...\n"); sleep(5); time(&end_t); diff_t = difftime(end_t, start_t); printf("执行时间 = %f\n", diff_t); printf("程序退出...\n"); return(0); } 让我们编译并运行上面的程序,这将产生以下结果: 程序启动... 休眠 5 秒... 执行时间 = 5.000000 程序退出... C 标准库 – <time.h>