C 如何读取下一行,然后调用函数?

C 如何读取下一行,然后调用函数?,c,C,我有一个简单的问题,我应该从文本文件中读取(逐行)并将输入组织到数字/符号/大写/小写的单独数组中。我创建了两个函数,一个用于获取字符并将其存储到相应的数组中,另一个用于对字符进行排序(气泡排序)。我的问题是我不知道如何为每一行调用这两个函数 int main() { char line[256]= ""; while (fgets(line, sizeof(line)-1, stdin)!=NULL) { bubbleSort(line, strlen(

我有一个简单的问题,我应该从文本文件中读取(逐行)并将输入组织到数字/符号/大写/小写的单独数组中。我创建了两个函数,一个用于获取字符并将其存储到相应的数组中,另一个用于对字符进行排序(气泡排序)。我的问题是我不知道如何为每一行调用这两个函数

int main()
{
     char line[256]= "";

     while (fgets(line, sizeof(line)-1, stdin)!=NULL) {
         bubbleSort(line, strlen(line));
     }
有关如何从文件中逐行读取的示例,请参见此

或逐字符:

int idx= 0;
char line[256];

while((c=getchar()) != EOF){    
    if(c != '\n'){
        line[idx]= c;  // store char by char in line at next pos
        idx++;
    }
    else {  // at \n pass the line and length to bubbleSort
        bubbleSort(line, idx);
        idx= 0;
    } 

}

只需停止
\n
上的循环,并添加另一个循环,直到
EOF
,以便读取所有行。因此,让第一个while循环结束\n,并在第一个循环中添加另一个while循环,直到EOF?不,将您所有的循环包装在另一个循环中,直到EOF,并将当前循环条件更改为
'\n'
EOF
(因为行可能以
EOF
\n
结尾).BTW,为什么要删除代码?你假设一行不能超过256个字符,这是不好的。在原始程序中没有这样的限制。事实上,你正在解决另一个问题。@Aneri:只要这个家伙有输入样本,并且他的样本代码仍然显示在问题中,那么它看起来确实很像同一个问题。他必须修改istinguish数字,小写和大写字符,加上他跳过了重复的字符。引用:“我的问题是我不知道如何为每一行调用这两个函数。”是的,但是我假设他想在每一行上运行他的处理,而不是整个输入。我认为只要在
'\n'
上添加一个条件和另一个外部循环就可以解决这个问题。