c语言中的几个疑问?请指点一下,谢谢
发布网友
发布时间:2023-02-11 10:27
我来回答
共3个回答
热心网友
时间:2023-09-19 02:21
while(s_gets(number, LIM) && number[0] != '\0')
s_gets(number,LIM)意思是接收字符串输入到number字符数组,最多接收LIM个字符
后面条件是判断是否空串,因为空字符串中没有有效字符,只保存字符串结尾标志0,
或者说写成字符形式就是'\0'
整个语句是:当接收字符串函数成功返回且所接收字符串非空串时循环处理
if ( ret_val ) { // 如果返回值变量不等于0,相当于条件if ( ret_val!=0 )
while(st[i] != '\n' && st[i] != '\0') i++;
//(i应初值值为0)st第i单元不是换行或字符串结束时循环,将i加1
//循环直到遇到st末尾的字符串结束或者换行时结束
if ( st[i] == '\n' ) st[i] = '\0';
//如果上边循环是遇到换行符退出的,替换成0,保证字符串中没有换行符存在
else while ( getchar() != '\n' ) continue; //否则死等键盘输入一个换行符
}
热心网友
时间:2023-09-19 02:21
第一个 while(s_gets(number, LIM) && number[0] != '\0') // 这个循环是读到了字符串,并且不是“空串”(字符串的长度为0的串)时循环
第二个
if(ret_val)//这个if判断的是ret_val的值非0
{
while(st[i] != '\n' && st[i] != '\0') //此字符不是行尾符,且不是串尾符
i++;
if(st[i] == '\n')//这个if判断的是什么 //循环退出时,说明遇到了换行符或串尾符。若是行尾符
st[i] = '\0';//就把这个字符变为串尾符
else //否则(st[i] 是 '\0'的情况)
while (getchar() != '\n') //不断读取字符,直到换行为止
continue;
}
热心网友
时间:2023-09-19 02:22
class MyTest_Base
{
public:
MyTest_Base (int& status)
{
//do other job
// 由于资源不够,对象构建失败
// 把status置0,通知对象的构建者
status = 0;
}
};
void main()
{
int status;
MyTest_Base obj1(status);
// 检查对象的构建是否成功
if(status ==0)
cout << "对象构建失败" << endl;
}
程序运行的结果是:
对象构建失败
在来看下面的程序:
class MyTest_Base
{
public:
MyTest_Base (int& status)
{
//do other job
// 由于资源不够,对象构建失败
// 把status置0,通知对象的构建者
status = 0;
}
virtual ~ MyTest_Base ()
{
cout << "销毁一个MyTest_Base类型的对象" << endl;
}
};
void main()
{
int status;
MyTest_Base obj1(status);
// 检查对象的构建是否成功
if(status ==0)
cout << "对象构建失败" << endl;
}追问那个大哥, 你好像回答错问题了