Tag: c

scanfvalidation位于并等待另一个输入。 为什么?

我正在进行这个示例练习,一切都按照我的意愿运行,但有一种我不理解的行为。 提供输入时:如果我连续输入无效条目,一切似乎都很好。 但是如果我在第一个问题的情况下输入不同于1,2,3的数字,或者在第二个问题的情况下输入1,2,则程序只是坐在那里直到给出新的输入。 如果进行了另一个无效输入,则返回错误“无效输入”消息,如果输入了适当的数字,则一切都很顺利。 我不明白为什么停止等待第二次输入…任何人? 多谢你们。 #include static int getInt(const char *prompt) { int value; printf(“%s”,prompt); while (scanf(“%d”, &value) !=1) { printf(“Your entry is invalid.\nGive it another try: %s”, prompt); getchar(); scanf(“%d”, &value); } return value; } int main() { int wood_type, table_size, table_price; printf(“Please enter ” ); wood_type = getInt(“1 for Pine, 2 for […]

允许在VB.net代码中调用C dll

我遇到了一个问题,我正在使用C Dll进入我的VB.net代码。 我有.H文件,它显示了用C语言实现的这个DLL。 此.H文件包含许多结构和联合,其中包含某些结构类型的变量。 有一个主结构,其中包含指向这些结构和联合的指针,最后将主结构的地址传递给dll函数。 我能够弄清楚如何在vb.net中使用编组创建结构和联合,以及如何传递包含其他结构和联合的地址的结构的地址。 请我解决这个问题。 任何帮助,将不胜感激。 谢谢,YOgi

C中的输入限制

我在限制用户输入方面遇到了一些问题。 我只想要整数1,2或3作为输入。 Do .. while循环完成无效整数输入的工作,但是如何忽略字符串/字符输入? 如果输入无效,我还需要重复询问用户。 更新: int problem; printf(“Please select the problem that you want to solve:\n”); printf(“\t 1-Problem 1\n”); printf(“\t 2-Problem 2\n”); printf(“\t 3-Problem 3\n”); while( scanf(“%d”, &problem)==0 && (problem!=1 || problem !=3 || problem !=2)) {int c; while((c=getchar())!=’\n’ && c!=EOF); printf(“Please select the problem that you want to solve:\n”); printf(“\t 1-Problem 1\n”); […]

将标准输出重定向到文件?

我想编写一个函数,它将标准输出重定向到文件名为“name”的文件.log其中“name”是函数的参数 void redirect(char *name) { 我不知道从哪里开始。

function分配,主要无法使用

我正在尝试分配空间并将我的函数中的文件数据放入main中的char数组指针数组中。 运行程序时出现分段错误。 谁能告诉我为什么? 数据字[0]在函数中正确打印。 这是我的function: void database_extract (char **data_words) { FILE *f_data; f_data = fopen(“database.txt”,”r”); struct stat st; stat(“database.txt”, &st); data_words = (char **)malloc(st.st_size * sizeof(char)); if (data_words == NULL) { printf(“No room\n”); exit(EXIT_FAILURE); } data_words[0] = “test”; printf(“%s”,data_words[0]); } 这是我的主要内容: int main () { char **data_words; database_extract (data_words); printf(“%s”,data_words[0]); } 任何帮助将不胜感激。

从基于来源的指数转换为基于目的地的指数

我在一些C代码中使用AVX2指令。 VPERMD指令采用两个8整数向量a和idx并通过基于idx置换a来生成第三个向量dst 。 这似乎相当于dst[i] = a[idx[i]] for i in 0..7 。 我正在调用此源代码,因为该移动是基于源索引的。 但是,我有基于目的地forms的计算索引。 这对于设置数组是很自然的,相当于dst[idx[i]] = a[i] for i in 0..7 。 如何从基于源的表单转换为基于目标的表单? 一个示例测试用例是: {2 1 0 5 3 4 6 7} source-based form. {2 1 0 4 5 3 6 7} destination-based equivalent 对于这种转换,我留在ymm寄存器中,这意味着基于目标的解决方案不起作用。 即使我要单独插入每个,因为它只在常量索引上运行,你不能只设置它们。

如何更新散列函数中的表大小

我正在学习如何实现哈希表但我在这里有点困惑因为在下面的书中代码是可用的并且我对代码的理解得很好,但是在书中没有HASH函数的定义,我知道我们必须通过拥有,但根据下面给出的代码给出内部书HASH是两个参数,无论我在HashInsert使用HASH index=HASH(data,t->size)如果我们假设返回类型的HASH , HashInsert它采用两个参数index=HASH(data,t->size)现在为int,例如我们可以将HASH定义为 int HASH(int data,int tsize){ return(data%7); } 但是根据我的程序,如何在HASH函数内更新t->size (表大小)或者我应该如何使用它请帮助我正确实现上面的HASH函数 #define Load_factor 20 #include #include struct Listnode{ int key; int data; struct Listnode* next; }; struct HashTableNode{ int bcount; /// Number of elements in block struct Listnode* next; }; struct HashTable{ int tsize; /// Table size int count; struct HashTableNode** Table; }; struct […]

什么printf打印单位变量?

该代码应该打印什么? 0或任何垃圾值还是依赖于编译器? #include int a; int main() { printf(“%d\n”,a); return 0; }

在C中获取处理时间的问题(请帮帮我)

我是C和WinAPI的新手。 我花了3个多小时尝试这样做,但完全失败了。 谁能帮助我? 这是我的代码: FILETIME *KernelTime; // Or struct _FILETIME *KernelTime HANDLE Process = OpenProcess ( PROCESS_ALL_ACCESS, FALSE, 0); // 0 is the PID of System Idle Process GetProcessTimes (Process, NULL, NULL, KernelTime, NULL); /* How to write here? */ double ElapsedProcessTime // Target !! 我认为这些可能对解决这个问题很有用: http://msdn.microsoft.com/en-us/library/windows/desktop/ms683223%28v=vs.85%29.aspx http://msdn.microsoft.com/en-us/library/windows/desktop/ms724284(v=vs.85).aspx http://msdn.microsoft.com/en-us/library/windows/desktop/ms724280(v=vs.85).aspx 编译器:GCC-mingw32 谢谢。

寻找一个C / C ++接口,用于在Linux中高效计算庞大的稀疏矩阵

我正在寻找一个C / C ++接口,用于在Linux中高效计算庞大的稀疏矩阵。 矩阵可能是数百万/数千万。 我检查了一些现有的库,但似乎没有一个满足我的所有要求, 1,我需要通过动态添加元素来创建稀疏矩阵。 (不适用于SparseLib ++) 2,我还需要能够创建稀疏对角矩阵,以便我可以使用不同的标量缩放另一个稀疏矩阵的列。 (没有为此找到一个库,也许还有另一种方法可以按列缩放稀疏矩阵) 3,需要支持矩阵运算与矩阵/向量相乘(许多库支持这些基本运算) 4,它需要支持两个稀疏矩阵或向量之间的入口乘法或除法,如MATLAB中的。*或./(没有为此找到一个库,我需要这个操作来筛选一个稀疏的一些条目矩阵与另一个稀疏矩阵) 5,矩阵求逆或线性求解器。 (大多数库提供线性系统的求解器) 我最初在Python中使用scipy来实现我的算法。 Python消耗太多内存而且速度很慢,这就是我想将程序转换为C的原因。 谢谢。