Tag: 用户输入

编辑GtkTreeView的难度

我正在编写一个软件,我的用户应该能够将数据添加到类似于表格的编辑小部件,我设法通过使用GtkTreeView进行渲染。 我可以通过此调用设置其editable属性来呈现我的单元格 g_object_set(content_renderer, “editable”, TRUE, NULL); 但是,我的GtkTreeView不仅保留输入的值,因为它甚至没有显示我在渲染之前添加的数据。 我在Web上看到了一些示例,开发人员手动将用户输入数据设置为模型,但所有这些都是使用Python或C ++编写的,使用这些语言提供的绑定,因此不直接解决我的问题。 我写了这个(不是那么)小例子 ,成功地显示了问题。 如何在GtkTreeView中使用户输入数据持久存在? PS:我的问题在某种程度上与这个有关,但是这个解决方案并不适用于我。 编辑 :我跟着@PhillipWood提示并将我的GtkCellRendererText连接到edited信号,并手动将新数据设置到模型中。 但是,我在编辑之前输入的数据和我在编辑期间输入的数据都没有显示在网格中。 我在Fedora 19下,GTK + 3.8.8。

Eclipse CDT Mars:从文件输入

我最近安装了Eclipse CDT Mars版本来运行C程序。 我在从文件中获取输入时遇到问题。 所以,我有一个看起来像这样的程序: int main(void) { //Declarations int number_of_segments; int k_constraint; segment_node *ptr_to_segment_array, *ptr_to_segment_sorted_array; int no_of_coordinates; int *ptr_to_solution_array; int *ptr_to_list_of_segment_identifiers_currently; int no_of_identifiers_currently=1; int i,j=1,k=0, l=0; //setvbuf(stdout, NULL, _IOLBF, 0); //Input printf(“Enter the number of segments\n”); scanf(“%d”, &number_of_segments); printf(“Enter the k constraint \n”); scanf(“%d”, &k_constraint); no_of_coordinates = number_of_segments*2; //Dynamically allocate memory to the Array […]

输入后忽略输入键的C代码

我输入调用后stdin流中的Enter键或字符出现问题。 假设我有一个输入调用,所以我输入了内容。 但是然后将Enter键作为下一个输入调用的输入。 我认为在c ++中有cin.ignore()来做这个伎俩。 我只是找不到C版。 输入方法是getchar()和gets() 。 对不起,如果这是重复的。 我找不到与我相匹配的问题。 谢谢你的帮助! printf(“Do you want to view the lines? “); int choice = getchar(); while (choice == ‘y’) { char line[80]; printf(“What line do you want to see? “); gets(line); if (line != “all”) { n = atoi(line); printf(“Line %d: %s\n”,n,list[n]); } else for (int i […]

如何读取二进制数作为输入?

有没有办法让用户在C或C ++中输入二进制数? 如果我们写类似的东西 int a = 0b1010; std::cout << a << std::endl 然后输出结果为10(使用适当的编译器扩展时)。 但是当我们试着写的时候 int n; std::cin >> n; int t = 0bn; 它给了我们一个错误,所以任何人都可以建议我们如何直接读取二进制数作为输入而不是使用字符串来存储输入?

如何从用户那里获得一个号码

我只是在学习C,并且到目前为止已经使用javascript和php等语言,我无法将我的一些思考步骤转换为C的可能性。我正在编写的程序(听起来比实际更大)使用一个输入菜单,让用户选择一个选项。 选项可以是1,2或3。 现在,我正在做: int menu; scanf(“%d”, &menu); 哪个工作正常。 但是,输入字符串的字符会导致问题。 在javascript中,我只是将菜单变量与选项匹配: if ( menu != 1 && menu != 2 && menu != 3 ){ menu = 4; // a switch later on will catch this. } 但是,这似乎不适用于C. 我该怎么办呢?

隐藏用户输入,仅允许某些字符

有什么方法可以在C中询问时隐藏用户输入吗? 例如: char *str = malloc(sizeof(char *)); printf(“Enter something: “); scanf(“%s”, str);getchar(); printf(“\nYou entered: %s”, str); // This program would show you what you were writing something as you wrote it. // Is there any way to stop that? 另一件事,是你怎么才允许某些角色? 例如: char c; printf(“Yes or No? (y/n): “); scanf(“%c”, &c);getchar(); printf(“\nYou entered: %c”, c); // […]

仅在C中进行error handling时强制输入为正数

我有一个微不足道的问题要问。 我的程序应该只采用正整数。 如果有任何违法行为,应提示用户再次输入号码。 我现在的代码是: #include int main(){ int reads; int num=0; char a; while(num<=0){ printf("Please Enter positive integer: "); while(((reads = scanf("%d%c", &num, &a)) != 2 && reads != EOF) || a != '\n' ){ do { printf("Please Enter positive integer: "); reads = scanf("%c", &a); }while(reads != EOF && a != '\n'); } } […]

如何阻止用户在C中输入char作为int输入

这是我的代码的一部分: printf(“\nEnter amount of adult tickets:”); scanf(“%d”, &TktAdult); while (TktAdult<0){ printf("\nPlease enter a positive number!"); printf("\nEnter amount of adult tickets:"); scanf("%d", &TktAdult); } 现在它只能阻止用户输入负值,但是如何添加它以便它也阻止用户输入char?

如何使用像scanf 这样的函数使用int16_t或int32_t

我在C中理解int16_t或int32_t的方式是它们在你的计算机上被分别定义为16位和32位数。 我相信当你需要保证数字为16或32位时你会使用这些,因为不同的系统并不总是将int表示为32位或short 16位(这个假设是正确的吗?当我在线查看时,我找到了混合的答案)。 我的问题是当我要求它们实际上是16位或32位或者其他什么时,我将如何使用像scanf这样的函数来获取来自用户的输入,其中包含int16_t或int32_t或任何其他类型定义的数字类型? 有某种特殊的字符串修饰符吗? 通常情况下,如果我想从用户那里获得一个int而不关心它实际表示的大小,因为我会写这样的东西 scanf(“%d”, &int); 这是有效的,如果我传入一个int32_t但我认为这只是因为我的系统上的一个int是32位而且它没有特别给我一个32位数而是它只给了我一个int 。 如何获得保证为32位的数字呢? 我已经查看了这个字符串修饰符和其他一些地方的页面,但没有提到这些类型定义的数字类型。 编辑:自从收到我的问题的答案后,我做了一些谷歌搜索并找到了这个 。 我也把它包含在下面以供参考。 uppercase hexadecimal printf format for uintptr_t #define SCNd16 “d” decimal scanf format for int16_t #define SCNd32 “ld” decimal scanf format for int32_t #define SCNd8 “hhd” decimal scanf format for int8_t #define SCNdFAST16 “d” decimal scanf format for int_fast16_t #define SCNdFAST32 […]

动态分配用户输入的字符串

我正在尝试编写一个执行以下操作的函数: 启动输入循环,每次迭代打印’> ‘ 。 取用户输入的任何内容(未知长度)并将其读入字符数组,必要时动态分配数组的大小。 用户输入的行将以换行符结束。 在字符数组的末尾添加一个空字节’\0’ 。 当用户输入一个空行时,循环终止: ‘\n’ 这是我目前写的: void input_loop(){ char *str = NULL; printf(“> “); while(printf(“> “) && scanf(“%a[^\n]%*c”,&input) == 1){ /*Add null byte to the end of str*/ /*Do stuff to input, including traversing until the null byte is reached*/ free(str); str = NULL; } free(str); str = NULL; } […]