我想回答一个面试问题,但不确定答案是什么:
我们定义了行动Y是动作X的包含,如果X仅在定义了Y的某些情况下定义,对于所有定义了X的情况,Y的行为与X的行为完全相同。
错误的声明是什么?
printf is a generalization of fprintf
scanf is a generalization of fscanf
All allegations are true
getchar is a generalization of fgetc
gets is the inclusion of fgets发布于 2020-06-28 08:42:57
printf是fprintf的推广
不,fprintf是printf / printf的推广,与fprintf(stdout, ...)完全等价
scanf是fscanf的推广
不,就像上面一样,fscanf是对任何流句柄的scanf的推广。
所有的指控都是真的
当然不是!
getchar是fgetc的推广
不,fgetc是getchar的推广
gets是fgets的包含
不,gets已经从标准中完全删除了,即使在它存在的时候,它也根本不像fgets那样工作,因为它删除了换行符,这不是由fgets完成的,因此在所有fgets工作的情况下,它都不像fgets那样工作。
因此,每项指控都是错误的。
发布于 2020-06-28 08:58:49
所有的说法都是完全错误的。上面提到的所有函数都是右侧函数的专用案例。
例如,printf是fprintf的私有示例,其中fprintf中的文件描述符是标准输出。
引用man7.org
int fprintf(FILE *restrict stream, const char *restrict format, ...);函数应该将输出放在指定的输出流上。函数应将输出放在标准输出流stdout上。
因此,fprintf是printf的包含(printf仅为定义了fprintf的某些情况和定义了fprintf的所有情况定义)。
以类似的方式,问题中提到的所有功能。继续查找男性7链接如下:
https://stackoverflow.com/questions/62619952
复制相似问题