gpt4 book ai didi

c - 如何获取用户输入的字符,并将其放置在某个内存位置?

转载 作者:行者123 更新时间:2023-11-30 19:11:03 24 4
gpt4 key购买 nike

如果可以的话,我想知道为什么我的代码不起作用。应该发生的事情是它应该从用户那里获取 9 个字符并将它们放入分配的内存位置。

#include <stdio.h>
#include <stdlib.h>
int main(){
char count, *ptr, *p;

ptr = malloc(27);

p = ptr;


for(int i = 0; i < 9; i++)
{
*p++ = scanf("%c", &count);
}

*p = '\0';
puts(ptr);
free(ptr);

}

最佳答案

存在以下问题。

  1. 我假设您想将字符存储在 ptr 指向的内存中。为什么要分配27个字节?您应该分配 9 个字符。

    ptr = malloc(sizeof(char)*(9+1));//'\0' 为 1
    if(0 == ptr)
    返回;

  2. Scanf 返回读取的字符数。所以你应该像下面这样编写 scanf 。

    scanf("%c", p++);

  3. 如果要使用scanf输入字符串,可以使用“%s”。实际上并不需要循环。

    scanf("%9[^\n]",p);

进行这些更改。它应该可以工作。

关于c - 如何获取用户输入的字符,并将其放置在某个内存位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40756297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com