#include <stdio.h>
#include <string.h>
#define TINTERVAL 4500000
int main()
{
int i,j, k;
char *a = "This is a test";
char *b;
printf("%s\n", a);
for (k=0; k < 5; k++) {
/* forward */
b =a; /* point to first character */
for (i=0; i <=strlen(a); i++){
if (i > 0) {
/* 必要なだけスペース出力 */
for (j = 0; j < i; j++)
printf(" ");
}
70 :
両津勘吉@つづきです:02/11/08 16:16
}
if (i < strlen(a)) {
printf("%c\r", *b);
}
else {
printf("\r");
}
fflush(stdout);
b++;
/* sleep(1); 少しポーズする */
for (j=0; j < TINTERNAL; j++) {
}
}
printf("\n");
return 0;
}
大ピンチになっています。上のプログラムを改良して両津勘吉という名前を
一文字づつ表示するプログラムはなんとかできました。
でもそこは提出しなくていいらしくて、今度はそれを改良して、両津勘吉という文字を、
一文字づつ左に表示して、左端についたら次に右に一文字づつ
表示するプログラムを作りたいのです。
どなたか暇な方がいたらよろしくお願いします。
出力例
1 吉
2 勘
3 津
4 両
5 津
6 勘
7 吉
どなたか助けてくださいお願いします
1 吉
2 勘
3 津
4 両
5 津
6 勘
7 吉
左端って右端から何文字目って決まっているの?
というか、そもそも、「上のプログラム」が正しく動かないんだが。
Win32Consoleだからなのか?
#include <stdio.h>
#include <string.h>
#include <wchar.h>
#include <locale.h>
#include <windows.h>
int wmain()
{
int k;
wchar_t *a = L"両津勘吉";
int len = wcslen( a );
setlocale(LC_ALL, "jpn");
wprintf(L"%s\n", a);
for (k=-len+1; k < len+1; k++) {
wchar_t *b = &a[ abs(k)];
if( k )
wprintf(L"%*c", abs(k)*2 , L' ');
wprintf(L"%c%*c\r", *b, (len-abs(k))*2, L' ');
Sleep(1000);
}
wprintf(L"\n");
return 0;
}
つーか、これでいいのか?