获得准确的用户输入,c

时间:2014-09-25 17:17:48

标签: c string char

我一直在寻找解决方案而且找不到任何解决方案,我一直试图制作一个用户输入大小的字符串,还有什么方法可以去关于这样做? (我试图消除char数组中的空值)。

编辑:我为丢失的信息道歉,编译器是gcc -std = c99,操作系统是Ubuntu。

这是主要程序的一部分,我专注于+标题(未完全完成),我试图创建一个与用户输入长度相同的字符串,并且包含相同的值。

编译器目前还没有识别myalloc和getline

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main() {
  char *string;
  int selection, bytes_read, nbytes = 255;
  unsigned char key, letter;

  do {
    ...
    printf("Enter a sentence:\n");
    string = (char *) myalloc(nbytes + 1);
    bytes_read = getline(&string, &nbytes, stdin);
    ...
  }while(..);
}  

1 个答案:

答案 0 :(得分:0)

将以下内容另存为 main.c

#define _POSIX_C_SOURCE 200809L

#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>

int
main()
{
  size_t n = 0;
  char * line = NULL;
  ssize_t count;
  printf("Enter a sentence: ");
  count = getline(&line, &n, stdin);
  if (count < 0)
    {
      perror("getline");
      return EXIT_FAILURE;
    }
  /* If it bothers you: get rid of the terminating '\n', if any. */
  if (line[count - 1] == '\n')
    line[count - 1] = '\0';
  printf("Your input was: '%s'\n", line);
  free(line);
  return EXIT_SUCCESS;
}

然后,在终端:

$ gcc -o main main.c
$ ./main
Enter a sentence: the banana is yellow
Your input was: 'the banana is yellow'

还有一个更广泛的示例,即使用man page中包含的getline