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

说明:scanf用于通过控制台输入字符串。

注意:

(1).通过scanf()函数输入的字符串,系统会自动在其后面补一个0,scanf默认回车和空格都是代表输入完成,这样会导致无法输入一个完整的字符串。

(2).scanf()函数并不检查char数组的下标,用户输入多少scanf就会保存多少,假如用户输入的字符长度超过了定义的char数组的长度,则会发生溢出。scanf函数是不安全的。

示例:

#include <stdio.h>
#pragma warning(disable:4996) void main() { char a[] = {};
scanf("%s",a);
printf("%s\n",a);
system("pause"); }

2. char *gets(char *str)

说明:从标准输入中读取一行,并将其存储到由str指向的字符串.

注意:

(1).gets函数只认回车代表输入完毕,空格只是一个普通字符而已,因此可以输出空格。

(2).gets函数同样有缓冲区溢出的问题。使用gets和scanf都会面临缓冲区溢出的问题,因此两者都不安全。

3. char *fgets(char *str, int n, FILE *stream)

说明:从标准输入中读取一行,并将其存储到由str指向的字符串.

注意:

(1).fgets函数有三个参数。第一个参数是char的数组,第二个参数是标明这个数组的大小,第三个参数如果是通过键盘输入可以固定写为stdin.

(2).fgets函数是安全的,不存在缓冲区溢出的问题。

(3).fgets函数在读取一个用户通过键盘输入的字符串的时候,同时把用户输入的回车键也作为字符串的一部分,因此使用fgets函数后在输出时,不需要添加\n。当输入长度超过了缓冲区长度时,多出的部分将会被截断。

#include <stdio.h>
#pragma warning(disable:4996) void main() { char a[] = {};
fgets(a,sizeof(a),stdin);
printf("%s",a);
system("pause"); }

4. int puts(const char *str)

说明:输出一个字符串。

注意:

(1).puts函数打印字符串,与printf不同,puts会在最后自动添加一个’\n’

(2).put函数不支持转义字符,比如%d,%s都不支持,puts函数只能简单输出一个字符串,而不能输出char,int,double等其它类型.

#include <stdio.h>
#pragma warning(disable:4996) void main() { char s[] = "hello world";
puts(s);
system("pause"); }

#include <stdio.h>
#pragma warning(disable:4996) void main() { char s[] = "hello world";
puts("%d%s",,s);
system("pause"); }

5. int fputs(const char *str, FILE *stream)

说明:输出一个字符串。

注意:

(1).第一个参数是char的数组,第二个参数如果只是用puts在屏幕输出的话可以固定写成stdout

(2).fputs不会自动输出一个\n

(3).fputs是puts的文件操作版本

#include <stdio.h>
#pragma warning(disable:4996) void main() { char s[] = "hello world";
fputs(s, stdout);
system("pause");
}

C语言基础(12)-输入和输出的更多相关文章

  1. Python基础篇--输入与输出

    站长资讯平台:Python基础篇--输入与输出在任何语言中,输入和输出都是代码最基础的开始,so,先来聊一聊输入和输出输出输入END在任何语言中,输入和输出都是代码最基础的开始,so,先来聊一聊输入和 ...

  2. C++语言基础(25)-C++格式化输出

    一.使用控制符控制输出格式 #include <iostream> #include <iomanip>//不要忘记包含此头文件 using namespace std; in ...

  3. Java入门 - 语言基础 - 12.Number和Math类

    原文地址:http://www.work100.net/training/java-number-math.html 更多教程:光束云 - 免费课程 Number和Math类 序号 文内章节 视频 1 ...

  4. D语言-变量、输入、输出、注释

    Part 1:变量 D语言的变量有很多类型,这里只讨论几个基本类型 §1.1变量的定义方法 在D语言中,变量的定义方法是这样子的: [typename] [var1,var2,var3...] 其中, ...

  5. python语言学习5——输入和输出

    输出 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字. 注意点: 字符串用的是单引号 碰到逗号输出时就会输出一个空格 输入 python提供了一个input(),可以让用户输入一个字 ...

  6. 从小白到区块链工程师:第一阶段:Go语言的控制台输入和输出(3)

    六,Print系列的函数输出 1:Println 打印换行.Print控制台打印,lnline 一行,打印数据后自动换一行显示.下面显示在控制台打印出不同的类型. 打印输出结果后,会自动换一行.打印结 ...

  7. C语言基础 (12) 文件的操作 FILE

    课程回顾 结构体基本操作: 结构体类型的定义 // struct为关键字 Stu为自定义标识符 // struct Stu才是结构体类型 // 结构体成员不能在定义类型时赋值 struct Stu { ...

  8. Java语言基础(12)

    1 构造方法重载 在一个类内部,编写多个构造方法,创建对象的时候,根据需求的不同,调用不同的构造方法创建对象,实现不同的初始化. 案例:Demo1 public class Demo1 { publi ...

  9. go语言基础之输入的使用

    1.输入的使用 第一种写法:fmt.Scanf("%d", &a) 第二种写法:fmt.Scan(&a) 示例: package main //必须有一个main包 ...

随机推荐

  1. 【R笔记】日期处理

    R语言学习笔记:日期处理 1.取出当前日期 Sys.Date() [1] "2014-10-29" date() #注意:这种方法返回的是字符串类型 [1] "Wed O ...

  2. Java小问题的解决方法系列

    1)IDEA中文乱码,解决方法:http://blog.csdn.net/zht666/article/details/8953516 2)卸载OpenJdk,http://my.oschina.ne ...

  3. 阿里云乌班图16配置-PHP环境(包括mysql及apache安装)

    1. 安装apache  apt-get update apt-get install apache2 service apache2 restart   通过浏览器访问服务器的IP,如果出现Apac ...

  4. [转] c++ try catch 问题

    windhaunting,原文地址 以前都是用try{} catch(…){}来捕获C++中一些意想不到的异常, 今天看了Winhack的帖子才知道,这种方法在VC中其实是靠不住的.例如下面的代码: ...

  5. RabbitMq_05_Topics

    Topics (using the .NET client) Prerequisites This tutorial assumes RabbitMQ isinstalled and running ...

  6. Python+C混编

    Python最慢!C最快!Python+C混编?结果可想而知! 樱桃种子 百家号04-1712:11 共享库 使用C语言编译产生共享库,然后python使用ctype库里的cdll来打开共享库. 举例 ...

  7. Vue组件基础知识总结

    组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树. 那么什么是组件呢?组件可以扩展HTML元素,封装 ...

  8. iOS开发- 自己主动消失的弹出框

    - (void)timerFireMethod:(NSTimer*)theTimer//弹出框 { UIAlertView *promptAlert = (UIAlertView*)[theTimer ...

  9. Java笔记5:单例模式

    一.应用杨景 在计算机系统中,线程池.缓存.日志对象.对话框.打印机.显卡的驱动程序对象常被设计成单例.这些应用都或多或少具有资源管理器的功能.每台计算机可以有若干个打印机,但只能有一个Printer ...

  10. NDK官方开发指南翻译之 NDK_GDB

    这几天看JNI,没有基础,那真是难受--把看到的相关资料记录一下,也分享给刚開始学习的人. 'ndk-gdb' Overview 重要:假设你要调试线程相关的程序.请阅读以下的'Thread Supp ...