22行目を消すとしっかりと実行されます。 22行目がおかしいと思いテストプログラムを作り試してみましたが、しっかりと動作しました。
なにがいけないのでしょうか。
#include <stdio.h>
#include <time.h>
#include <string.h>
int main(void){
char str[]="ABCDEFG "; //表示する文字列
time_t t;
int len = strlen(str); //表示する文字列の文字数
int cnt=0;
while(1){
int i;
putchar('\r'); //カーソルを行の先頭へ
for(i=0;i<len;i++){
if(cnt+i<len){
putchar(str[cnt+i]);
}else{
putchar(str[cnt+i-len]);
}
}
for(t = time(NULL); difftime(time(NULL), t) <= 3; ); //3秒間を置く
if(cnt<len-1){
cnt++;
}else{
cnt=0;
}
}
return 0;
}