C言語で配列内の文字列に2文字おきに/を入れたいのだが

■ このスレッドは過去ログ倉庫に格納されています
1以下、5ちゃんねるからVIPがお送りします2019/02/11(月) 23:08:46.338ID:wtJWO1400
190211

19/02/11

68以下、5ちゃんねるからVIPがお送りします2019/02/11(月) 23:49:12.464ID:lOlVnfYl0
>>64

69以下、5ちゃんねるからVIPがお送りします2019/02/11(月) 23:49:31.798ID:8LJUgCB+0
あと10分しかねえぞ

70以下、5ちゃんねるからVIPがお送りします2019/02/11(月) 23:49:39.829ID:wtJWO1400
>>66
できない > <

71以下、5ちゃんねるからVIPがお送りします2019/02/11(月) 23:50:19.933ID:NDYFlJIO0
>>9

unsigned char str1[]="152030";
unsigned char str2[10];
unsigned int ii;




for(ii=0;ii<sizeof(str1+2);ii++){
if(ii==2 || ii==5){
str2[ii]=':';
}else if(ii<2){
str2[ii]=str1[ii];
}else if(ii<5){
str2[ii]=str1[ii-1];
}else {
str2[ii]=str1[ii-2];
}

72以下、5ちゃんねるからVIPがお送りします2019/02/11(月) 23:51:00.187ID:NDYFlJIO0
あとなにがわからんの?

73以下、5ちゃんねるからVIPがお送りします2019/02/11(月) 23:51:34.488ID:SKR844Da0
Dの内容がわからんことにはだな
他の内容はお得意の脳死サンプルコピペでいけるだろ

74以下、5ちゃんねるからVIPがお送りします2019/02/11(月) 23:53:37.415ID:wtJWO1400
FILE *fp;
//ファイルリストを読み込む
if( (fp = fopen( "filelist.txt", "r")) == NULL ) {
printf( "入力ファイルがオープンできません\n" );
exit(1);
} else{
while (fgets(readfile[c1], N, fp) != NULL ) {
printf("%s", readfile[c1]);
c1++;
}
}
//ファイルの数だけループ
for (i=0; i<c1; i++) {
//ファイルを1行ずつ読み込む
sprintf(filename, "%s", readfile[i]); //←パスも試した
printf("%s",filename); //←ちゃんと出た
if( (fp = fopen(filename, "r")) == NULL ) {
printf( "入力ファイルがオープンできません\n" ); //←実行結果
exit(1);
} else{
while (fgets(readline[c2], N, fp) != NULL ) {
printf("%s", readline[c2]);
c2++;
}
}
c2 = 0;
}

なんでだろうね

75以下、5ちゃんねるからVIPがお送りします2019/02/11(月) 23:53:39.388ID:NDYFlJIO0
1と9の応用で簡単にあとのもできるだろ?

76以下、5ちゃんねるからVIPがお送りします2019/02/11(月) 23:55:20.146ID:wtJWO1400
readfileとfilenameは二次元配列ね

77以下、5ちゃんねるからVIPがお送りします2019/02/11(月) 23:57:12.988ID:SKR844Da0
>>76
二次元配列ってことは全てのファイル名は同じ文字列長なの?
ダブルポインタじゃないの?
それとも頭うんこなの?

78以下、5ちゃんねるからVIPがお送りします2019/02/11(月) 23:58:59.673ID:wtJWO1400
>>77
同じじゃないよ?
終端文字いるのか?

79以下、5ちゃんねるからVIPがお送りします2019/02/11(月) 23:59:31.938ID:NDYFlJIO0
>>74
http://www.c-tipsref.com/reference/stdio/fgets.html
よく見て
fgets の格納する配列はポインタわたしじゃね?

80以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:00:54.814ID:uZcDMsTF0
OK?

81以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:01:59.901ID:uZcDMsTF0
あと元になるtxtファイルにはちゃんと改行文字コードがある?

linux と win で改行コード違うけど 動作はどうなんだろ?

やればわかるからやってみ!

82以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:02:02.974ID:4CXtizK90
解決したから落としていいわ

83以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:02:56.993ID:uZcDMsTF0
なんじゃそりゃw

84以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:04:01.801ID:zjS2RZoQ0
>>1です
>>79-81
ここら辺ちょっとやってみる

85以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:05:58.692ID:zjS2RZoQ0
いやfgetsはできてるのよ
その前のfopenでダメなの

86以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:06:12.292ID:S3CMp4t60
>>81
fgetsはちゃんと吸収してくれる賢い子

87以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:08:39.428ID:uZcDMsTF0
>>85
そかwじゃあ ファイルの絶対パス、相対パス、フルパスを調べて!

88以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:09:03.098ID:zjS2RZoQ0
改行文字はよくわからんけど今sprintfで\nつけてみたけど入力ファイルがオープンできませんってなる

89以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:09:07.868ID:uZcDMsTF0
でフルパスでファイル名記入してみて!

90以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:10:32.481ID:zjS2RZoQ0
>>87
絶対パスはやった

91以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:10:35.042ID:uZcDMsTF0
これでできたべ?

92以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:13:12.495ID:uZcDMsTF0
>>90
じゃあ先頭に ./filename みたいに ./ 付けて ファイルのあるディレクトリで実行してみれば

93以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:14:53.408ID:S3CMp4t60
>>92
基準はあくまでも実行パスなんだけどな

94以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:15:24.936ID:uZcDMsTF0
あw

FILE *fp;   これなんで他のファイルにもつかってるん?

もういっこFILE ポインタつくれば?

95以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:15:41.299ID:zjS2RZoQ0
今までファイルのあるディレクトリに移動して起動してて今移動せずにやったけどできない

96以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:18:01.117ID:zjS2RZoQ0
>>94
ダメじゃん
それでも入力ファイルオープンできない

97以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:18:26.808ID:uZcDMsTF0
FILE ポインタの使い回し  なんかで検索してみ?

98以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:22:20.211ID:uZcDMsTF0
言語見ただけで見ただけで 動作確認って俺はデバッガじゃないぞw

自分でいじれるならコンソール出力文字に変化付けたりして

どこでerror吐いてるか自分で追う習慣つけろ!

99以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:23:31.977ID:uZcDMsTF0
入力ファイルがオープンできません  を2回使ってるからどっちでerror吐いてるかも

わかんないじゃん!

どっちでerror吐いてるかまずしらべて!

100以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:25:01.264ID:zjS2RZoQ0
>>99
いやエラー出てるのは下の方なんだって
ファイル名はreadfileに格納されてるんだから

101以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:28:16.130ID:uZcDMsTF0
>>100
2つめのファイルポインタを 

FILE *fp2; ってかいてそれ使ってみたりした?

102以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:29:44.625ID:uZcDMsTF0
あと拡張子 とかあってる?

それと 権限あるならファイル権限も調べて

103以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:29:56.629ID:U/DiCMsF0
@頭から1文字ずつコピーしていく
A2文字コピーしたら記号を入れる
B@Aを文字終了まで繰り返す

でよくねー

104以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:30:28.066ID:U/DiCMsF0
あれ、ファイルポインタの話してたわ

105以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:30:38.237ID:uZcDMsTF0
パーミッション設定されてるなら  てstなら777とかでやってみれば?

106以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:32:24.453ID:U/DiCMsF0
fopenのファイル指定方法って相対パスか絶対パス指定じゃなかったっけ
まあいいや仕様書読もうね

107以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:34:16.475ID:zjS2RZoQ0
疲れたから寝るわ
明日にしよ

108以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:34:38.743ID:zjS2RZoQ0
>>101
したよ

109以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:34:49.013ID:U/DiCMsF0
これカレントディレクトリ固定なんか…

110以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:37:59.815ID:zjS2RZoQ0
>>109
え?絶対パスでいけるはずだよ?

111以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:38:29.090ID:uZcDMsTF0
sprintf だたぶんw

ナル文字 ('\0')が最後に追加されちゃうんだって!
ナル文字 消して入れなきゃだめなんじゃない?

112以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:39:06.402ID:S3CMp4t60
権限周り絡んじゃうと標準ライブラリでは細かくは制御出来ないし困ったもんだね

113以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:39:17.596ID:uZcDMsTF0
sprintf で入れた文字列を 一個一個 %02x で16進数バイナリ表示してみくらべてみ!

114以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:41:17.148ID:zjS2RZoQ0
俺がやったこと
sprintf(filename,"%s",readfile)
sprintf(filename,"C:\\〜\\%s",readfile)
sprintf(filename,"%s\n",readfile)

115以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:42:08.541ID:zjS2RZoQ0
あーsprintfかなー
あしたstrcpyに直して起動してみるわ

ありがとなみんな

116以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:43:42.081ID:zjS2RZoQ0
ただ知恵袋見るとsprintfで出来ちゃってるんだよなぁ
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1027576150

117以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 00:46:27.148ID:uZcDMsTF0
>>115
念の為バイナリコードで見てみたほうがいい
余計なバイナリコードが隠れてるんじゃないかな?

118以下、5ちゃんねるからVIPがお送りします2019/02/12(火) 01:30:21.955ID:+KpebQs+0
ポインタ投げて配列の各要素にアクセスしてあとは2個要素抜くごとに/挿入しろ

■ このスレッドは過去ログ倉庫に格納されています