%が含まれる文字列を表示しようとするとエラーになる
Posted: 2009年11月14日(土) 22:10
現在ライブラリを作って、テストしてて発見したのですが
printf() 関数に渡す文字列に % を含む文字列を渡すとランタイムエラーがでます
一文字ずつ printf( "%d" ); で表示するとうまく表示できるのです
サンプルプログラムでは指定した文字列をいったん、全部 char化し、vector<char>に格納して
一個ずつ表示する方法と
printfで一気に表示する方法を試しました
やはりこれも文字コードと関連のあるバグなのでしょうか?
printf() 関数に渡す文字列に % を含む文字列を渡すとランタイムエラーがでます
一文字ずつ printf( "%d" ); で表示するとうまく表示できるのです
サンプルプログラムでは指定した文字列をいったん、全部 char化し、vector<char>に格納して
一個ずつ表示する方法と
printfで一気に表示する方法を試しました
やはりこれも文字コードと関連のあるバグなのでしょうか?
#include <stdio.h> #include <vector> using namespace std; int main() { char buf[256] = "---dns.org/%7eupus---"; //---dns.org/~upuser--- vector<char> v; int i; for( i=0; i<strlen(buf); i++ ) v.push_back( buf ); // これはうまく表示される for( i=0; i<v.size(); i++ ) printf( "%c", v.at(i) ); // ここでランタイムエラー printf( buf ); return 0; }