如何实现格式化功能

How to implement formatting features

我正在尝试在我的代码中实现格式化功能,首先

我读取了用户输入的文本文件,以及格式化功能

例如“.br”、“.sp”和“.ce”都包含在此文本文件中。

所以我试图做一个 if 语句,如果程序找到单词“.br”它

应该立即换行并开始下一个单词,但我真的

想不出办法。

#include <stdio.h>
#include <string.h>

int main(void) {
FILE *fp = NULL;
char file_name[257] = {'[=10=]'};
char line[61] = {'[=10=]'};
char word[61] = {'[=10=]'};
int out = 0;

printf ( "Enter file name:\n");
scanf ( " %256[^\n]", file_name);

if ( ( fp = fopen ( file_name, "r")) == NULL) {
    printf ( "This file does not exist.\n");
    return 1;
}

while ( ( fscanf ( fp, "%60s", word)) == 1) {
    if ( strlen ( line) + strlen ( word) + 1 <= 60) {
        strcat ( line, " ");
        strcat ( line, word);
        out = 0;
    }
    else {
        printf ( "%s\n", line);
        strcpy ( line, word);
        out = 1;
    }

 if ((word) == ".br"){

      }
}
if ( !out) {
    printf ( "%s\n", line);
}

fclose ( fp);
return 0;
}

我为“.br”功能创建了 IF 语句,但我确实需要帮助或一些

线索实际放入循环中的内容。

添加 if 条件以将单词与“.br”进行比较。打印出当前行并设置 line 以接受空字符串中的下一个单词。

#include <stdio.h>
#include <string.h>

int main(void) {
    FILE *fp = NULL;
    char file_name[257] = {'[=10=]'};
    char line[61] = {'[=10=]'};
    char word[61] = {'[=10=]'};
    int out = 0;

    printf ( "Enter file name:\n");
    scanf ( " %256[^\n]", file_name);

    if ( ( fp = fopen ( file_name, "r")) == NULL) {
        printf ( "could not open file\n");
        return 1;
    }

    while ( ( fscanf ( fp, "%60s", word)) == 1) {
        if ( strcmp ( word, ".br") == 0) {
            printf ( "%s\n", line);
            line[0] = '[=10=]';
            out = 1;
        }
        else if ( strlen ( line) + strlen ( word) + 1 < 60) {
            strcat ( line, " ");
            strcat ( line, word);
            out = 0;
        }
        else {
            printf ( "%s\n", line);
            strcpy ( line, word);
            out = 1;
        }
    }
    if ( !out) {
        printf ( "%s\n", line);
    }

    fclose ( fp);
    return 0;
}
if( 0 == strcmp( word, ".br" ) )
{
    printf( "%s", line );
    printf( "\n" );
}

注意字符串不能与==比较,必须使用类似strcmp()

的东西

发布的代码需要重新排列,以便在检查标记 word[] 是否不是格式序列后,字符才会放入 line[]