• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:NSString文字列をprintfで出力するには)

Objective-CでNSStringクラスの文字列をprintf関数で出力する方法

このQ&Aのポイント
  • Objective-CのNSStringクラスの文字列をprintf関数で出力する方法を紹介します。
  • 該当のコードでコンパイルエラーが発生した原因と解決策について解説します。
  • MacOSX環境でXcodeを使用している場合、NSString文字列をprintfで出力する方法に注意が必要です。

質問者が選んだベストアンサー

  • ベストアンサー
  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.2

あ、そういう問題ではないな。UTF8Stringでも、ちゃんと出力しますね。 「#import <Foundation/NSObject.h>」これが間違いなんでしょうね。これではNSStringクラスのヘッダファイルを読み込みませんから、NSStringクラスを使った時点で、未定義なことが起きますね。 #import <Foundation/Foundation.h> こう書き換えてください。 それと、<Foundation/Foundation.h>を導入すると、いっしょにC言語の主要ヘッダも導入するので、「#import <stdio.h>」は不要です。

mcack999
質問者

お礼

#import <Foundation/Foundation.h> を記載したら動作しました!ありがとうございます。 NSLog()も使ってみましたが、 一緒に出てしまう日時などのログ情報が邪魔だったのでprintfを使ってみたかった次第です。 ありがとうございました!

その他の回答 (1)

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.1

UTF8Stringではなく、「cStringUsingEncoding:」を使ってください。UTF8はユニコードのことで、1文字に付き2バイトをあてます。1文字に付き1バイトをあてるC言語の文字列と異なります。 cStringUsingEncoding:のエンコードは、半角英数しか使っていないのであれば、「NSASCIIStringEncoding」、それ以外は「NSUTF8StringEncoding」とします。テキスト書類からShit JISエンコードのテキストを読み込んだという場合は、「NSShiftJISStringEncoding」。 ※ただエラーメッセージ「but argument 2 has type ‘id’」もおかしい気がします。 コンソールに出力するのは、printfではなく、NSLog()を使ったほうがいいでしょう。文字列を出力するには、「%@」を使います。 NSLog(@"The output = %@", str01);

関連するQ&A