Tag:

C – 尝试返回文件中的上一行

我必须阅读一个可以从可选注释开始的文本文件。 在实践中,我必须跳过文件开头的任何不以’@’或’>’开头的行。 在我的测试用例中,文件看起来像: # Sun Jul 12 22:04:52 2009 /share/apps/corona/bin/filter_fasta.pl –output=/data/results/solid0065/primary.20090712170542775 # Cwd: /state/partition1/home/pipeline # Title: solid0065_20090629_FC1_Tomate_Heinz_4_5_Kb_Tomate_Heinz_4_5_Kb_01 >125_963_316_F3 T1230330231223011323010013 所以我必须跳过前3行(但一般来说我必须跳过n行)。 我必须用2或4个文件[它们在FILE ** inputFiles中]重复这个。 我试过这个循环: buffer = (char*) malloc (sizeof(char) * 5000); if (buffer == NULL) notEnoughMemory(); for (i = 0; i ‘)){ fgetpos(inputFiles[i], &position); fgets(buffer, 4999, inputFiles[i]); } fsetpos(inputFiles[i], &position); } 其中cIn是number_of_input_files + 1.尝试调试它时,循环在读取第四行后正确停止。 但是当我使用setpos时,它不会像我期望的那样回到第四行的开头,而是在第三行的中间。 […]

(C)在矩阵中获取行的3个最小元素,并随机选择一个

我有一个8×8矩阵,在选择了我想要的行之后,我想得到它的三个最小元素,并随机选择这三个中的一个。 问题是我不知道如何处理这三个元素。 我只知道如何获得最小元素,即以下代码。 int piezas[8][8] = { 0, 2, 2, 5, 3, 2, 1, 1, 0, 4, 5, 2, 4, 3, 0, 0, 0, 4, 2, 2, 1, 2, 3, 2, 0, 3, 1, 5, 1, 2, 3, 4, 2, 5, 6, 5, 3, 1, 2, 7, 8, 2, 0, 0, 0, 2, 1, 1, […]

你如何在矩阵中交换两行(在C中)?

例如,给定一个矩阵: 1 2 3 4 5 6 7 8 9 如果你是goint交换行[0]和行[1],结果矩阵将是: 4 5 6 1 2 3 7 8 9 你们能帮助我在C中获取代码吗?

有没有办法找到从文件中读取的当前行的行号?

1)在C中是否有一种方法可以找到我们从文件中读取的行的行号。 2)我还想知道是否有另一种方法可以找出文件中的总行数,而不是通过创建一个循环来查找每行中的EOF ,直到它到达结尾。

行主要与列主要矩阵乘法

我目前正在研究一个试图计算矩阵乘法的C程序。我已经通过循环遍历第二个矩阵的每一列来完成这个任务,如下所示。 我将大小设置为1000。 for(i=0;i<size;i++) { for(j=0;j<size;j++) { for(k=0;k<size;k++) { matC[i][j]+=matA[i][k]*matB[k][j]; } } } 我想知道在这个实现中有什么问题的访问模式..什么使行/列访问比另一个更有效? 我试图从使用Caches的逻辑方面理解这一点。请帮助我理解这一点。 非常感谢您的帮助 :)

如何知道另一个函数

我想知道是否有任何方法可以知道当前执行的函数在哪里被调用,这是在什么文件和行中。 我正在使用C语言,我正在寻找类似于__FUNCTION __,__LINE__或__FILE__宏的东西。

从C中的文本文件中读取int值

我有一个包含以下三行的文本文件: 12 5 6 4 2 7 9 我可以使用fscanf函数读取前3个值并将它们存储在3个变量中。 但我无法阅读其余的内容。 我尝试使用fseek函数,但它只适用于二进制文件。 请帮我将所有值存储在整数变量中。

逐行读取C和C ++?

我想从C或C ++中的文件中逐行读取,并且当我假设某个行的固定大小时,我知道如何做到这一点,但是有一种简单的方法可以以某种方式计算或获得行所需的确切大小或文件中的所有行? (如果任何人都可以这样做的话,直到换行一字一句也对我有好处。)

在C中逐行读取文件

我正在尝试编写一些代码来打开文件,逐行读取其内容并将这些行存储到数组中。 首先,我打开文件并计算行数,每行都是固定长度,所以我只是这样做: char buf2[LINE_LENGTH]; int in2 = open(“toSend2”, O_RDONLY); int number_of_lines = 0; for (;;) { char* p2 = buf2; int count = read (in2, p2, LINE_LENGTH); if (count < 0) { printf("ERROR"); break; } if (count == 0) break; number_of_lines++; printf("count: %d \n",count); printf("File 2 line : %s", p2); printf("\n"); } close (in2); 到目前为止,这很好用,number_of_lines确实是文件“toSend2”中的行数,而我的每个printf都是该文件中包含的行。 […]