Tag: scanf

在数组中找到孤立的整数

如果可以的话,请参考这个 hackerrank挑战。 问题是在数组中找到孤立的整数,给定一个数组只包含一对,除了一个孤独的整数。 问题出在这个测试用例上 9 4 9 95 93 57 4 57 93 9 9是数组大小,下面是数组 查看// ——突出显示的代码部分 如果我将scanf(“%d”,&n)置于int arr [n]代码上方工作正常,但反过来会产生可怕的结果。 请帮帮我 #include int lonely_integer(int* a, int size); int main(){ //n is size of array, i is counter variable int n, i, result; // ——————— int arr[n]; scanf(“%d”, &n); // ——————— printf(“%d\n”, n); for(i = 0; […]

在C中读取和打印.txt文件行的最清晰方法

有很多方法描述如何使用各种方法在此站点上打印文本文件的行: Posix风格 , 读取IP地址 , 固定线长 。 它们似乎都是根据具体的例子量身定做的。 如果能够使用最清晰 , 最简洁和最简单的方法,那就太棒了: 将任何文本文件的每一行打印到屏幕上。 优选地详细说明每条线的作用。 简洁明了的要点。

格式字符串漏洞

我有简单的C程序: char user_input[100]; scanf(“%s”, user_input); printf(user_input); 据我所知,这代表了安全漏洞; 例如,输入一堆%x将打印出堆栈的内容。 但是如何打印所选的内存位置呢? 我读到了: \x10\x01\x48\x08_%08x.%08x.%08x.%08x.%08x|%s| 应该从本文的位置0x08480110转储内存的内容。 但相反,它将打印出下一个4字节到堆栈上的格式字符串。 我想知道为什么。

如何只阅读每行的第一个单词?

我已经做了很多简单的程序,但我只是试图从文本文件的每一行读出第一个单词到一个char word[30] 。 我试过了,但没有成功。 哦,每次我阅读它都要重用那个char。 (每次我阅读时都要列出一个有序列表)。 任何人都可以通过一种简单而“干净”的方式向我展示一种从文件中读取这种方式的方法吗? FILE *fp; char word[30]; fp = fopen(“/myhome/Desktop/tp0_test.txt”, “r”); if (fp == NULL) { printf(“Erro ao abrir ficheiro!\n”); } else { while (!feof(fp)) { fscanf(fp,”%*[^\n]%s”,word);//not working very well… printf(“word read is: %s\n”, word); strcpy(word,””); //is this correct? } } fclose(fp); 例如,对于包含以下内容的文件: word1 word5 word2 kkk word3 1322 word4 synsfsdfs […]

scanf / getchar只在第一次循环时正常工作?

我试图让用户输入一个他们想要的次数(并为每个数字创建一个链表节点)。 但是,我尝试了多种清除字符输入缓冲区的方法,但无济于事。 奇怪的是,代码将执行一次但不能正确执行第二次。 例如,使用下面的代码,终端读取: would you like to enter an integer? y Enter an integer: 4 would you like to enter an integer? y **program terminates** 在我使用scanf(“%c”, yesno); 我甚至不能在最后一行输入’y’。 它刚刚终止。 struct node *read_numbers(void){ struct node *first = NULL; int n; char yesno; yesno = ‘y’; while( yesno == ‘y’){ printf(“Would you like enter an integer […]

用C语言快速读取文件

嗯,我想知道是否比使用fscanf()更快地读取文件的方法 例如,假设我有这个文本 4 55 k 52 o 24 l 523 i 首先,我想读取第一个数字,它给出了以下行数。 将这个数字称为N. 在N之后,我想要读取具有整数和字符的N行。 使用fscanf会是这样的 fscanf(fin,”%d %c”,&a,&c);

在scanf()中使用&符号

当我编译scanf(“%s”, &var); ,gcc发回警告: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘char (*)[20]’ 但是当我编译scanf(“%s”, var); ,不会发出警告。 这两段代码都有用,而我正在阅读的书中特别说使用&符号,但即使在某些示例中也没有。 我的问题是,即使本书未指明,我是否应该继续使用&符号?

使用正则表达式的sscanf输入

我想要输入字符串的特定部分 “第一个(helloWorld):最后一个” 从那个字符串我想通过正则表达式输入“helloWorld”。 我在用 %* [^(](%s):“ 但这不符合我的目的。 请有人帮我解决这个问题。

如何在C中输入空格

我想从控制台获取字符数组,它还包括空格,我在C中知道的唯一方法是scanf,但是一旦用白色空格命中它就会错过停止输入。 我该做什么? 这就是我在做的事情。 char address[100]; scanf(“%s”, address);

scanf()中的%* c – 这是什么意思?

我试图在Turbo C中运行该程序,但无法解密输出。 这个%*c是什么意思? 任何帮助,将不胜感激。 int dd,mm,yy; printf(“\n\tEnter day,month and year”); scanf(“%d %*c %d %*c %d”,&dd,&mm,&yy); // what does %*c mean ? printf(“\n\tThe date is : %d %d %d”,dd,mm,yy); OUTPUT Enter day, month and year 23 2 1991 3 5 The date is: 23 1991 5