所以基本上我想从键盘读取一个文本,我知道它将具有以下格式:" 1 somewords",其中某些词是特定词。问题是我不知道如何从指针访问该特定部分。 例如,如果我运行
`printf("%s",myPointer);
我的输出只有1(缺少下一部分)。 在#34;之后,我尝试了以某种方式分配部分。 "到另一个指针,但它似乎没有用。
scanf("%s",operatie); //if , for example operatie="1 dana"
if(operatie[0]=='1') {
char *h=(operatie+1);
printf("%s",h);
} // h will be 0.
答案 0 :(得分:4)
scanf("%s",operatie); //if , for example operatie="1 dana"
问题在于scanf()
。 %s
将停留在第一个空格处(阅读1
后)。所以输入的其余部分根本就没有读过。
如果您想阅读一行,请使用fgets()
。如果inputer缓冲区有足够的空间,fgets()
也将读取换行符。所以你可能想删除它。
E.g。
char operatie[256];
if (fgets(operatie, sizeof operatie, stdin) == NULL) {
/* handle error */
}
/* Remove the trailing newline, if present */
char *p = strchr(operatie, '\n');
if (p) *p = 0;