ページ 1 / 1
改行について
Posted: 2009年2月03日(火) 13:55
by JT
こんにちは^^C言語の改行ですが 例>printf("HELLO!!\n\n\n\n") と何行か改行するプログラムを書くのですがこれ以外にループ文を使用せず10行改行する方法はないでしょうか?
Re:改行について
Posted: 2009年2月03日(火) 14:13
by 御津凪
単に10行固定で改行するなら、
printf("\n\n\n\n\n\n\n\n\n\n");
で済みます。
あとは、
void printf_return( int num ){
char buf[128];
if(num < 128){ // 127個の改行まで対応
memset(buf,'\n',num); // num 個の改行文字で埋める
buf[num] = '\0'; // 終端文字を追加
printf(buf); // 出力
}
}
こうでしょうかね。
Re:改行について
Posted: 2009年2月03日(火) 14:17
by JT
ありがとうございます^^ 10\nのような処理が欲しいです、、、何か\nを10回入出力させるのは抵抗がありました><
Re:改行について
Posted: 2009年2月03日(火) 15:19
by 御津凪
printf の書式を独自に拡張すれば、
"%$10\n"
とかで改行文字が10回出力されるようにする、という実装は可能かもしれませんが、
単に10回 '\n' を書いたほうが遥かに簡単ですし、コードも短く済みます。
確かにコードに直接書くのは抵抗があるかもしれませんが、
この場合は割り切って直接書いたほうがいいと思います。
苦労してまでその書式の独自拡張を実装する必要があるのかどうか、
という点を考えるべきですね。
# 効率化を図るための実装が見合うものでなかったら逆効果(あるいは無意味)ですし、
# 非効率に見える処理が実は効率的である、ということもあります。
Re:改行について
Posted: 2009年2月03日(火) 15:51
by JT
そうですよね><初心者だからこそ綺麗なプログラムをかきたくて
Re:改行について
Posted: 2009年2月03日(火) 15:52
by Dixq (管理人)
これじゃ駄目ですか?
#include <stdio.h>
#define ln10 "\n\n\n\n\n\n\n\n\n\n"
int main(void){
printf( ln10 );
return 0;
}
Re:改行について
Posted: 2009年2月03日(火) 16:09
by JT
ありがとうございます^^ 参考にします
Re:改行について
Posted: 2009年2月05日(木) 11:29
by JT
ありがとうございました。普通に¥nを10回書きます
Re:改行について
Posted: 2009年2月05日(木) 11:32
by JT
解決を押し忘れてました><