我正在自己学习 c,实际上我正在尝试编写一个程序来计算文件中 TAb 的数量,如果一行有一个制表符,我想打印整行以及这一行中制表符的数量。如果它不是更难,我希望你帮我做到这一点,如果一行有超过 80 个字符,打印这一行和我有这个主要功能的字符数:
include <stdio.h> /* printf */
/* Prototype from tablen.c */
void tablen(const char *filename);
int main(int argc, char **argv)
{
if (argc < 2)
{
printf("Usage: tablen filename\n");
printf("where: filename - file to process.\n");
return -1;
}
tablen(argv[1]);
return 0;
}
这个主要功能是非常基本的,所以我希望那里没有错误。还有这个功能:
include <stdio.h> /* FILE, fopen, feof, fgets, fclose */
include <string.h> /* strlen */
void tablen(const char *filename)
{
/*Variables*/
int i; /*loop controller */
int tabs = 0; /*number of tabs*/
int line = 0; /*current line*/
int size_string; /*size of the string*/
File *file; /* open and read the file */
file = fopen(filename, "rt"); /*open the file for read text*/
size_string = strlen(filename);
/*if we can read the file*/
if(file)
{
/*while we don't reach the end of file, we still reading*/
while (!feof(file))
{
for(i = 0; i < size_string; i++)
{
if(filename[i] == 9) /*ASCII value of TAB is 9 or '\'*/
{
tabs++;
}
if(tabs > 0)
{
printf("# %i: (tabs: %i) |", line, tabs);
}
if(filename[i] == '\n')
{
line++;
tabs = 0;
}
}
}
}
}
我已经写了这个伪代码,我认为它是正确的计数标签:首先打开一个文件以读取/文本,而文件中有更多行(并逐一读取)我们计算标签的数量,如果我们发现带有标签的一行,打印该行和标签的数量当然我们关闭文件
用于检查线长
首先打开一个文件进行读取/文本,如果文件中有更多行,我们会计算每行的长度。如果该行超过 80 个字符,我们会打印该行的长度信息
我不知道我的方法是否正确,因为这是我第一次尝试处理文件