getchar(),gets()

2024-06-15 23:38
文章标签 gets getchar

本文主要是介绍getchar(),gets(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最重要的区别是gets读一行,getchar()()读一个字符。

先看原型:
char() * gets(char() * ptr);
int getchar(void);

作用是:

gets()用于从标准输入流stdin读入一个整行(以'\n'或EOF)结束,写入ptr指向的字符数组,并返回这个指针;出错或遇到文件结束时则返回NULL。行末的'\n'从流中取出,但不写入数组。gets()不检查被写入的数组大小。

getchar()用于从标准输入流stdin读入一个字符,并返回这个字符。如果读到文件结尾,则返回EOF。注意到EOF不能用char类型表示,所以getchar()函数返回的是一个int型的数。使用时也应该注意这一点。

 

#include<stdio.h>
#include<stdlib.h>
int main()
{system("color f5");printf("     *\n    **\n     ***\n");system("pause");return 0;
}

 

#include<iostream>
#include<math.h>
using namespace std;class Shape
{
public:virtual double Area() const = 0;virtual double Perim() const = 0;virtual void Show(){cout << "Area is:" << Area() << endl;cout << "Perim is:" << Perim() << endl;}
};class Rectangle:public Shape
{
private:double Length;double Width;
public:Rectangle(double Length = 0,double Width = 0){this->Length = Length;this->Width = Width;}~Rectangle(){}double Area() const{return Length*Width;}double Perim() const{return 2*(Length+Width);}/*void Show( ){cout << "Area is:" << Area() << endl;cout << "Perim is:" << Perim() << endl;}*/
};const double PI = 3.14159;
class Circle:public Shape
{
private:double Radius;
public:Circle(double Radius = 0){this->Radius = Radius;}~Circle(){}double Area()const{return PI*Radius*Radius;}double Perim() const{return 2*PI*Radius;}/*void show(){cout << "Area is:" << Area() << endl;cout << "Perim is:" << Perim() << endl;}*/
};class Triangle:public Shape
{
private:double A,B,C;
public:Triangle(double A = 0,double B = 0,double C = 0){this->A = A;this->B = B;this->C = C;}~Triangle(){}double Area() const{double P;P = (A +B + C)/2;return sqrt(P*(P-A)*(P-B)*(P-C));}double Perim() const{return(A+B+C);}/*void show(){cout << "Area is:" << Area() << endl;cout << "Perim is:" << Perim() << endl;}*/};void main()
{double Length,Width,Radius,A,B,C;cout << "Rectangle :" << endl;
loopa:cout << "请输入矩形的长河宽(Length,Width):" << endl;cin >> Length >> Width;if(Length <= 0||Width <= 0){cout << "输入的长度不能构成一个矩形!请重新输入!" <<endl;goto loopa;}else{Rectangle Rect(Length,Width);Rect.Show();cout << "Circle: "<<endl;}loopb:cout << "请输入圆形的半径(Radius): " << endl;cin >> Radius;if(Radius <= 0){cout << "输入的半径不能构成一个圆!请重新输入!" << endl;goto loopb;}else{Circle Cir(Radius);Cir.Show();cout << "Triangle:" << endl;}loopc:cout << "请输入三角形的三边(A,B,C): "<< endl;cin >> A >> B >> C;if(A <= 0||B <= 0||C <= 0 ||(A+B) <= C || (A + C) <= B||(B + C) <= A){cout << "输入的三边值不能构成一个三角形!请重新输入!" << endl;goto loopc;}else{Triangle Tri(A,B,C);Tri.Show();}
}

 

这篇关于getchar(),gets()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1064906

相关文章

c语言getchar()接收字符函数如何结束

int main(int argc, char* argv[]) {  double nc;  for(nc=0;getchar()!=EOF;nc++) {     putchar(c); }     printf("%f",nc);  return 0; } 当我们输入字符的时候,注意到,这个并没有按程序的逻辑输入一个就立刻打印出来,因为存在缓存问题,只有按enter键 才会将

C语言gets()与scanf()

先列举几种情况,以下的代码只有输入方式有变化: 1. #include<string>#include<math.h>using namespace std;int main(){char m[33];char n[33];gets(n);gets(m);printf("%s",m);//正常输出return 0;} 2. #include<string>#include<math.

c语言中getc getch getchar 的区别

getc():调用方式:int getc(FILE *stream)它返回指定输入流stream的当前位置的下一个字符,并增加文件的位置指示器. 例如:1 #include   2 #include //此头文件中包含了linux定义的常用常量   3  int main(int argv,char args[])   4  {   5         char ch;   6

《C语言杂记》C语言使用gets函数出现的警告问题

首先我们来看个程序。 #include <stdio.h>#include <string.h>int main(int argc, char *argv[]){char s[100];printf("输入字符串:\n");gets(s); printf("%s\n",s); return 0;} 但是在编译的时候回出现如下警告。 main.c: In function ‘main’

poj 2886 Who Gets the Most Candies?

单点更新,还有凡素数表,所谓反素数, 对于任何正整数x,起约数的个数记做g(x).例如g(1)=1,g(6)=4. 定义:如果某个正整数x满足:对于任意i(0<i<x),都有g(i)<g(x),则称x为反素数. 现在给一个N,求出不超过N的最大的反素数. 比如:输入1000 输出 840 思维过程: 求[1..N]中最大的反素数-->求约数最多的数 如果求约数的个数

POJ 2886 Who Gets the Most Candies? (线段树,单点更新)

http://poj.org/problem?id=2886 Who Gets the Most Candies? Time Limit: 5000MS Memory Limit: 131072KTotal Submissions: 9426 Accepted: 2871Case Time Limit: 2000MS Description N children are sitt

编译安装libiconv报错:./stdio.h:1010:1: error: 'gets' undeclared here (not in a function)

1. libiconv编译时遇到以下报错 In file included from progname.c:26:0:./stdio.h:1010:1: error: ‘gets’ undeclared here (not in a function)_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead")

C语言 gets函数 puts函数 getchar函数

gets函数从标准输入读取一行文本并把它存储于作为参数传递给它的数组中。 一行输入由一串字符组成,以一个换行符(newline)结尾。 gets函数丢弃换行符,并在改行的末尾存储一个NULL字节(一个NULL字节是指字节模式为全0的字节,类似’\0’这样的字符常量)。然后,gets函数返回一个非NULL值,表示该行已被成功读取。 当gets函数被调用,但事实上不存在输入行时,它就返回NULL值,表

scanf()、getchar()、gets()、cin之间的区别

问题描述一:(分析scanf()和getchar()读取字符)           scanf(), getchar()等都是标准输入函数,一般人都会觉得这几个函数非常简单,没什么特殊的。但是有时候却就是因为使用这些函数除了问题,却找不出其中的原因。下面先看一个很简单的程序: 程序1:      #include <stdio.h>int main

gets 和getchar 的区别

https://blog.csdn.net/zqixiao_09/article/details/50189477 转载 非原创