Tag: c

scanf扫描后从输入中删除了什么?

我经历了很多问题,博客和书籍,但我想我无法正确地解决问题。 scanf扫描后做了什么? 它读取除了空格,制表符和换行符之外的所有内容,但它对换行有什么作用? 扫描输入后,我无法以任何方式删除换行符。 例如,将此视为输入: – 五 ABCDEFGH 现在,我已将5扫描为整数, scanf(“%d”, &i); 但是如何删除’\ n’以便一次读取一个字符前面的所有内容? 我想用: – while((c=getchar())!=’\n’){//Do something} ‘\ n’应该是字符串之后的那个,但是getchar()在5之后得到一个并且循环在甚至运行一次之前终止。 我想我只是错过了一个小技巧。 scanf(“%d”, &i); while((c=getchar())!=’\n’){ //Do something with the character } 输入文件:- 五 ABCDEF 期待while循环运行,而它不运行。 因为它在5.之后捕获’\ n’。我尝试在scanf()和while()之间添加getchar(),但是程序卡住并且什么都不做。

如何在C中按升序对字符串数组进行排序

问题 我已经制作了与其他类似的排序程序 C Program to Sort set of strings in alphabetical order 但我做的程序不起作用。 我认为两者都是一样的,但我的计划给了我废物输出。 另外我想知道其他程序计数设置为5例如它应该从0开始输入6但是它只获得5,如何? 我的计划 #include #include int main() { char str[4][10],temp[10]; int i,j; printf(“Enter strings one by one : \n”); for(i=0;i<5;i++) scanf("%s",str[i]); for(i=0;i<5;i++) for(j=i+1;j0){ strcpy(temp,str[i]); strcpy(str[i],str[j]); strcpy(str[j],temp); } printf(“\nSorted List : “); for(i=0;i<5;i++) printf("\n%s",str[i]); printf("\n\n"); return 0; }

使用if语句与逻辑运算符有什么好处?

我知道if语句可以以各种方式使用,例如带有逻辑运算符的if语句, if … else和嵌套if语句等。 使用逻辑运算符时,例如&&,|| 要确认很多条件,那么代码大小会比使用多个嵌套if语句时小。 使用带有条件运算符的if语句是否有任何其他好处(运行时,调试,编译时益等)?

获取C中字符的EBCDIC值

我需要在C中获得字符的EBCDIC值。我不知道如何。 我必须先获取ASCII值然后从那里获取EBCDIC值吗? 谢谢任何人

如何将数组从函数返回到main

我必须使用该函数打开文件,读取它,将第一个值保存为以下元素(维度)的数量以及seq[]数组中的其他值。 我不知道如何在main中返回dimension和seq[] ; 我需要它,因为我必须在其他函数中使用这些值。 如代码所示,函数返回维度(dim),但我不知道如何返回数组。 #include #include #include #include int leggiSequenza(char *nomeFile, int *seq) { FILE *in; int i; int dim; if((in = fopen(nomeFile, “r”))==NULL) { printf(“Error.\n”); return -1; } fscanf(in, “%d”, &(dim)); printf(“Find %d values.\n”, dim); if(dim < 0) { printf("Errore: negative value.\n"); return -1; } seq = (int*) malloc(dim*sizeof(int)); i=0; while(!feof(in) && i<(dim)) […]

从另一个文件调用节点

我知道在编程中,保持简单并能够改变是很重要的。 所以对我而言,这意味着使用不同的文件和function并将它们分开以便更容易隔离故障并提高可读性非常重要。 我是C的新手,我不明白该怎么做。 我有我的nodeTest.h #include #include struct nodeTest { int data; struct nodeTest* next; }; 然后我有另一个文件试图调用该结构 #include #include #include “nodeTest.h” nodeTest* first = (nodeTest*)malloc(sizeof(nodeTest)); 我收到一个错误,说nodeTest未声明(不在函数中)。 这是什么意思,为什么我不能使用include来包含struct或typedef?

pthread_create没有足够的空间

我在Windows上使用Pthreads和MinGW。 对pthread_create的调用返回一个错误,该错误转换为“空间不足”。 它指的是什么样的空间? 是线程堆栈空间吗? int scannerThreadReturnValue = pthread_create(&parserThreadHandle, &attr, parserThread, (void *)filename); if(scannerThreadReturnValue != 0) { printf(“Unable to create thread %s\n”, strerror(errno)); } else printf(“Parser thread creation successfull\n”);

与C的Fibonacci序列相比,为什么Haskell这么慢?

我只是Haskell的初学者。 我编写了一个代码来显示Fibonacci序列中的N个数字。 这是我在Haskell中的代码, fib_seq 1 = 1:[] fib_seq 2 = 1:1:[] fib_seq n = sum(take 2 (fib_seq (n-1))):fib_seq (n-1) 当我在GHCI中为更高的数字运行此代码(例如fib_seq 40时,需要很长时间来评估它并且我的计算机挂起并且我必须中断。 但是,当我在C中写出相同的逻辑时,(我只是打印而不是将其保存在列表中), #include int fib_seq (int n){ if(n==1) return 1; else if(n==2) return 1; else return fib_seq(n-1)+fib_seq(n-2); } void print_fib(int n){ if(n==0) return; else printf(“%i “, fib_seq(n)); print_fib(n-1); } int main(int argn, char* argc){ print_fib(40); […]

c编程如何从树中获取叶子列表

我有一个二叉树,我需要列出所有的叶子 树定义是: typedef struct tree { TreeNode* root; List leafList; } Tree; treeNode定义: typedef struct treeNode { int data; struct treeNode* parent; struct treeNode* left; struct treeNode* right; } TreeNode; 列表定义 typedef struct list { ListNode* head; ListNode* tail; }列表; listNode定义 typedef struct listNode { int data; struct listNode* next; } ListNode; 在我的第一步,我建立了树(很好)。 现在,在我的第二步,我需要从所有叶子列出一个列表。 对于前 […]

C初学者 – 将char *数组复制到另一个char *数组

我一直在挣扎这个愚蠢的时间。 基本上,我需要将一个char指针数组复制到另一个char指针数组。 现在,我有这个function: void copyArray(char *source[], char *destination[]) { int i = 0; do { destination[i] = malloc(strlen(source[i])); memcpy(destination[i], source[i], strlen(source[i])); } while(source[i++] != NULL); } 这导致分段错误。 有人可以帮忙吗? 谢谢! 编辑:示例程序 #include #include #include // Copy the contents of one array into another void copyArray(char *source[], char *destination[]){ // printf(“In copy array”); int i = 0; […]