C++学习day2

128 阅读2分钟

第五章 循环和关系表达式

for循环

for(语句1;语句2;语句3)
{
    代码体。。。;
}
案例:
for(int i = 0;i<5;i++)
{
    scanf("%d",&a[i]);
}
  • 递增递减

    ++、-- a++则先调用a,在自加,反之则相反 注意:和指针一起使用,需要注意*号运算等级低于++,p++相当于(p++)

  • 组合赋值运算符

    +=、-=、*=、/=、%=等等

  • 逗号运算符

    for(j = 0;i = word.size() - 1;j < i;++j,i--)
    {
       ...;
    }
    
  • 关系表达式

    <、<=、==、>、>=、!= 注意:组合使用时候最好加上括号

  • 字符串的比较

    c语言的模式:

    strcmp(char const *str1,char const *str2)
    

    c++的string类 #include

    if(str1 == str2)
    {
    	内容...
    }
    

while循环

while(test-expression)
{
	语句体;
}
  • 等待时间

    using namespace std;
    cout << "Enter the delay time,in seconds:";
    float secs;
    cin >> secs;
    clock_t delay = secs * CLOCKS_PER_SEC;
    cout << "string\a\n";
    clock_t start = clock();
    while (clock() - start < delay)
    	;
    cout << "done\a\n";
    return 0;
    
    • CLOCKS_PER_SEC

      计算机时间,每个计算机的单位时间,如果游戏延迟使用while(time--);则在不同的计算机上延迟不同

    • clock()

      此函数返回的不一定是秒,而是计算机单位时间,返回类型是clock_t

  • 类型别名

    宏方法:#define NUMBER 10 typedef方法:typedef int int16;

do while循环

基于范围的for循环

for(int x:{1,2,3,4,5})
{
    std::cout<<x<<std::endl;
}

循环和文本输入

char p;
std::cin>>p;

注意:上面方式输入字符,读取不到空字符,比如空格。

std::cin.get()//此时的输入字符不会忽略空字符
  • 文件尾条件

    EOF代表一个文件的结尾,检测到EOF后,cin将(eofbit和failbit)都置1。cin.eof()和cin.fail(),后者用的比较多。 cin.fail()比较单一,而cin也能返回故障,而且范围大,所以一般这么使用:

    while(cin.get(ch))
    {...}
    

    注意:cin.get(ch)和 ch = cin.get() 只能使用其中一个

第六章 分支语句和逻辑运算符

if语句

//语句1
if(test-condition测试条件)
    statement语句;
//语句2
if(test-condition)
    statement1;
else
    statement2;

逻辑表达式

  • OR(||)
  • AND(&&)
  • NOT(!)

字符函数库cctype

  • int isalnum(int c)

    • 该函数检查所传的字符是否是字母和数字。
  • int isalpha(int c)

    • 该函数检查所传的字符是否是字母。
  • int iscntrl(int c)

    • 该函数检查所传的字符是否是控制字符。
  • int isdigit(int c)

    • 该函数检查所传的字符是否是十进制数字。
  • int isgraph(int c)

    • 该函数检查所传的字符是否有图形表示法。
  • int islower(int c)

    • 该函数检查所传的字符是否是小写字母。
  • int isprint(int c)

    • 该函数检查所传的字符是否是可打印的。
  • int ispunct(int c)

    • 该函数检查所传的字符是否是标点符号字符。
  • int isspace(int c)

    • 该函数检查所传的字符是否是空白字符。
  • int isupper(int c)

    • 该函数检查所传的字符是否是大写字母。
  • int isxdigit(int c)

    • 该函数检查所传的字符是否是十六进制数字。
  • int tolower(int c)

    • 该函数把大写字母转换为小写字母。
  • int toupper(int c)

    • 该函数把小写字母转换为大写字母。

?:运算符

条件 ?语句1:语句2

switch语句

switch(变量)
    case value1:
        语句;
        break;
    ....
    default:语句;break;

break和continue

连续的数字输入

while (!(cin >> number[i]))
{
	cin.clear();
	while (cin.get() != '\n')
	{
		continue;
	}
	cout << "请输入数字:";
}

文件输入输出

  • 输入到文件

    包含头文件fstream 定义一个ofstream类 使用open()方法去打开文件 使用close()方法去关闭文件

    file.open("123.txt");
    file << fixed;
    file.precision(2);//输出浮点类型的小数位数
    file.setf(ios_base::showpoint);
    file<<“输入内容”<<endl;
    file.close()
    
  • 从文件输出

    包含头文件fstream 定义一个ofstream类 使用open()方法去打开文件 使用close()方法去关闭文件

    12.5 13 ...
    14.5 16 ...
    17
    
    while(inFile.good())
    {
        ++count;
        sum += value;
        inFile>>value;
    }
    if(inFile.eof()){...}//文件结尾
    else if(inFile.fail()){...}//输入错误
    else {未知错误}