gpt4 book ai didi

c - 每行出现的符号

转载 作者:行者123 更新时间:2023-11-30 15:26:05 27 4
gpt4 key购买 nike

我想获取符号“;”的出现次数对于这个 C 程序的每一行。我输入文件 Source.c 的名称并尝试计算出现的符号,但我得到了所有“;”的值对于每一行。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>/* For exit() function */

int main()
{
char file_name[150];
FILE *file2 = 0;

gets(file_name);

{
int rows = 1;//broq na vsichki redove

int dotcoma[150];
int j;
int c=0;

file2 = fopen(file_name, "r");//otvarq faial za chetene
if (file2 == NULL){
printf("Cannot open %s\n", file_name);
exit(2);
}//if

for (j = 0; j < 150; j++)
dotcoma[j]=0;

do{
c = fgetc(file2);
if (c == '\n') rows++;

if (';' == c)

dotcoma[rows-1] ++;



} while (c != EOF && rows <= 150);//chete do kraq na faila

if (ferror(file2)){
printf("Error reading file.\n");

}//if

printf("The number of the symbols on a row ");
printf("Row %d: %f\n", j + 1, (float)dotcoma[j]);

}

if (fclose(file2) == EOF){
printf("Cannot close %s\n", file_name);

}
_getche();
return 0;
}

最佳答案

你几乎已经把一切都准备好了。您需要做的唯一更改就是放置该行

     printf("Row %d: %f\n", j + 1, (float)dotcoma[j]);

for 循环中将格式从 %f 更改为 %d

  printf("The number of the symbols on a row \n");
for (j = 0; j < rows; j++)
{
printf("Row %d: %d\n", j + 1, dotcoma[j]);
}

您必须确保行数保持在 150 或以下。否则,您最终会越界访问数组dotcoma。一种方法是使用:

  do{
c = fgetc(file2);
if (c == '\n') rows++;

if (';' == c)
dotcoma[rows-1] ++;

} while (c != EOF && rows <= 150);//chete do kraq na faila

关于c - 每行出现的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27511969/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com