我有一个程序,我试图将用户输入连接到一个命令,以便在wsl环境中执行它。
#include<stdio.h>
#include<stdlib.h>
int main(){
char cmd[100];
char usr_in[50];
fgets(usr_in, sizeof(usr_in), stdin);
cmd = snprintf(cmd, sizeof(cmd), "ping %s", usr_in);
system(cmd);
return 0;
}
但这会在编译过程中产生以下错误。
error: incompatible types in assignment of ‘int’ to ‘char [100]’
cmd = snprintf(cmd, sizeof(cmd), "ping %s", usr_in);
我不知道它说的是哪个整数赋值。sizeof(cmd)是唯一的整数,它是snprintf的有效参数。
2条答案
按热度按时间xlpyo6sf1#
snprintf
会传回int
(打印的字符数),而您尝试将传回值指定给cmd
,即char[100]
。mitkmikd2#
snprintf
会传回int
。cmd = snprintf…
会尝试将int
指派给数组cmd
。