トップページ⇒tech
1001コメント425KB

C/C++の宿題を片付けます 96代目

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG?2BP(12)
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。

【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】        http://chomework.sakura.ne.jp/
【wiki】               http://www23.atwiki.jp/homework/

【前スレ】
C/C++の宿題を片付けます 95代目
http://pc11.2ch.net/test/read.cgi/tech/1187944110/
0175デフォルトの名無しさん2007/09/24(月) 12:22:32
>>174
英語は分かるがcが分からないんだ…
0176デフォルトの名無しさん2007/09/24(月) 12:22:50
翻訳しました

-ベース値(int日付のタイプ)のためのユーザのPromt。
-ベース値を読んでください。
-解説者値(int日付のタイプ)のためのユーザのPromt。
-解説者値を読んでください。
-<cmath>機能を使用します。
-以下の出力を表示するべきです:
/*はベースに入ります: 3
解説者に入ってください: 2
3 2と、パワーは9と等しいです。
3の平方根はいずれも*/を続けるために合わせる1.41Pressと等しいです。
0177デフォルトの名無しさん2007/09/24(月) 12:25:26
そして、cはわからないが√3は1.41ではないことは分かる!
0178汗2007/09/24(月) 14:39:17
お助けください。

現在の地域時間から15時間後の日時を表示するプログラムを作成しなさい。
表示形式は日付と時間が表示されれば、自由とします。
0179デフォルトの名無しさん2007/09/24(月) 14:41:15
>>178
>>7
0180デフォルトの名無しさん2007/09/24(月) 14:41:48
間違えた
>>178
>>1
0181デフォルトの名無しさん2007/09/24(月) 14:45:40
#include <stdio.h>
#include <time.h>
int main() {struct tm tm; time_t now = time(NULL); tm = * localtime(& now); tm.tm_hour += 15; mktime(& tm); puts(asctime(& tm)); return 0;}
0182汗22007/09/24(月) 14:55:45
[1] 授業単元: 通信物
[2] 問題文(含コード&リンク):
次のプログラムで本来入れるべき処理は何か。それを指摘しなさい。
 1:char*pstr;
2:
3:pstr=malloc(100)
4:sprintf(pstr,"123")
5:patr=malloc(10)
6:sprintf(pstr,"456")
7:free(pstr);

[3] 環境
 [3.1] OS: (Windows)
 [3.3] 言語: (C)
[4] 期限:早いと助かるス。
0183デフォルトの名無しさん2007/09/24(月) 14:59:18
2:char*pastr;
8:free(pastr);
0184デフォルトの名無しさん2007/09/24(月) 15:00:00
2:char*patr;
8:free(patr);
0185デフォルトの名無しさん 2007/09/24(月) 15:04:33
>>163
#include <iostream>
#include <cstdio>
#include <cmath>

int main()
{
using std::cin;
using std::printf;
using std::putchar;
char *str[4] = {"Enter the base: ",
"Enter the exponent: ",
"%d to the %d power equals %.0lf.",
"The square root of %d equals %1.2lf"};
int b,ex;
double p,r;
printf(str[0]);
cin >> b;
printf(str[1]);
cin >> ex;
printf(str[2],b,ex,pow(static_cast<double>(b),ex));
putchar('\n');
printf(str[3],b,sqrt(static_cast<double>(b)));
putchar('\n');

return 0;
}
The square root of 3 equals 1.41はおかしすぎる
0186デフォルトの名無しさん2007/09/24(月) 15:54:34
人並みにおごれや
だったな確か
0187続・汗32007/09/24(月) 16:03:22
【1】以下のプログラムは、起動時に指定された2つのテキストファイルを比較し、
違う行があればその行番号を表示するプログラムです。空白部分(�@〜�D)を埋めて、
プログラムを完成させなさい。

1:/* インクルード /*
2:#include<stdio.h>
3:#include<string.h>
4:#include<errno.h>
5:
6:FILE*Fp1;
7:FILE* �@ ;
8:
9:/* 関数宣言 /*
10:int main(int argc,char*argv[]);
11:
12:int Func_open(char*,int);
13:int Func_read(void);
14:
0188続続・汗32007/09/24(月) 16:04:59
15:/* メイン関数 /*
16:int main(int argc,char*argv[])
17:{
18: int nrtn;
19: int ncnt;
20:
21: nrtn=Func_open(argv[1],1);
22: if(nrtn!=0)
23: return1;
24: nrtn=Func_open( �A ,2);
25: if(nrtn!=0){
26: fclose( �B );
27: return1;
28: }
29:
30: ncnt=0;
31: nrtn=0;
32: while(nrtn==0){
33: nrtn=Func_read();
34: ncnt++;
35: }
0189続続続・汗32007/09/24(月) 16:05:51
36:
37: fclose(Fp1)
38: fclose(Fp2)
39:
40: if(nrtn<0)
41: printf("%sと%sは違う内容でした(%d行目)",
42: argv[1],argv[2],ncnt);
43: else
44: printf("%sと%sは同じ内容でした",
45: argv[1],argv[2])
46:
47: return(0);
48:}
49:
50:int Func_open(char*szfname,int nno)
51:{
52: errno=0;
53: if(nno==1)
54: Fp1=fopen(szfname,"r")
55: else
56: Fp2=fopen(szfname,"r")
57: if((Fp1==NULL&&nno==1)�U�U
58: (Fp2==NULL&&nno==2)){
59: printf("<%s>エラー:%s",szfname,strerror �C ));
60: return(-1);
61: }
62:
63: return(0);
64:}
0190続続続続・汗32007/09/24(月) 16:06:42
65:
66: int Func_read(void)
67:{
68: char*prtn1;
69: char*prtn2;
70: char szdat1[81];
71: char szdat2[81];
72: int nrtn;
73:
74: prtn=fgets(szdat1,81,Fp1);
75: prtn=fgets(szdat2,81,Fp2);
76: if(prtn1==NULL)�U�Uprtn2==NULL)
77: return(9);
78:
79: nrtn=strcmp(szdat1,szdat2)
80: if(nrtn!= �D ) 
81: return(-1);
82: return(0);
83:}
0191続続続続続・汗32007/09/24(月) 16:08:23
【2】上記プログラムにおいてFunc_read関数はstrcmpを使用して読み込んだ
2つのレコードが同じかどうか判断しています。
これをmemcmpを利用したロジックに作り直しなさい。

当方、全く初心者なのでさっぱしです。ヨロシクお願いしますm(__)m
0192デフォルトの名無しさん2007/09/24(月) 16:13:30
ひでえコードだな
0193デフォルトの名無しさん 2007/09/24(月) 16:15:27
穴埋め問題はどうもやる気がおきんな
0194へたれ2007/09/24(月) 16:27:29
C言語
Windows
EZ EDITOR
for文,1次元変数,do-while文,if-else文,doubleなどは習いました。
期限:今日中

問題
2次方程式の開放プログラム:a,b,cをそれぞれ入力し、axの2乗+bx+c=0の2つの解を表示するプログラムです。
こんな感じで大丈夫でしょうか?
0195デフォルトの名無しさん2007/09/24(月) 16:35:41
>>194
>こんな感じで大丈夫でしょうか?
なんて言う前に、>>1嫁
EZ EDITORってエディタ?そんな情報いらん
コンパイラの方が重要だ
0196へたれ2007/09/24(月) 17:00:15
>>195
コンパイラの意味がわかりません。Visualかなぁ?
WZ EDITORは関係なかったんですね。
PC初心者ですいません
0197デフォルトの名無しさん2007/09/24(月) 17:16:03
>EZ EDITOR
今でも使っている奴いるのか?
0198デフォルトの名無しさん2007/09/24(月) 17:19:34
プログラミングが上達するコツ
http://pc11.2ch.net/test/read.cgi/tech/1190555031/
0199デフォルトの名無しさん2007/09/24(月) 17:42:41
[1] 授業単元: C
[2] 問題文 19と打てば、2 4 6 8 10 12 14 16 18と表示するプログラム
[3] 環境
 [3.1] OS: XP
 [3.2] VC++ 2008
 [3.3] 言語: C
[4] 期限: なるべく早めに
[5] その他の制限:
0200デフォルトの名無しさん2007/09/24(月) 17:45:22
いや、問題分は「入力された数字までの偶数を出力するプログラム」だろ?
0201デフォルトの名無しさん2007/09/24(月) 17:45:35
WZ EDITORは今でも一応現役だな。
ほぼフルセットのC言語なマクロも使えるから、入門用の教材として使われるケースも希にある。
まあ、浮動小数点数とか使えないから、素直にVisualC++使っとけとも思うが。
0202デフォルトの名無しさん2007/09/24(月) 17:45:35
#include <stdio.h>

int main(void)
{
    int n;
    scanf("%d", &n);
    if (n == 19) {
        printf("2 4 6 8 10 16 18");
    }
    return 0;
}
0203デフォルトの名無しさん2007/09/24(月) 17:45:37
>>200
そうです。
0204デフォルトの名無しさん2007/09/24(月) 17:45:54
>>200でお願いします。
0205デフォルトの名無しさん2007/09/24(月) 17:48:50
#include <stdio.h>

int main(void)
{
int i, n;

scanf("%d", &n);

for(i=2; i<=n; i+=2) printf("%d ", i);

return 0;
}
0206デフォルトの名無しさん2007/09/24(月) 18:00:22
#include <stdio.h>
int main(void)
{
int num;
int dig;

dig=0;

scanf("%d",&num);

while (num>=dig+2) {
dig+=2;
printf("%d ",dig);
}

return (0);
}
0207デフォルトの名無しさん2007/09/24(月) 18:19:55
よかったな!これで4人分確保できたぞ!
#include <stdio.h>
int main(void)
{
int i, n;
printf("数値?"); scanf("%d", &n);n >>= 1;
for(i = 1; i <= n; i++) printf("%d ", n << 1);;
return 0;
}
0208デフォルトの名無しさん2007/09/24(月) 18:31:23
やったー、これで4Pできるね!
02091632007/09/24(月) 18:37:42
皆さん本当にありがとうございます
自分のプログラムですが
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4960.txt
エラーがひとつ、どうしても消えません
修正可能な方よろしくお願いします
0210デフォルトの名無しさん2007/09/24(月) 18:45:26
>>209
エラーがひとつって…いくつも間違いあるぞ
cinでendlいらない
powやsqrtを自分で宣言してどうする
0211デフォルトの名無しさん2007/09/24(月) 18:45:51
--
int pow(int base,int exponent);
double sqrt(int base);
--
標準関数を自分勝手に宣言してはいけません。しかも、間違っています。
--
int result1;
result1=pow(base,exponent);
double result2;
result2=sqrt(base);
--
変数は定義と同時に初期化しましょう。そうしなければいけない理由がないのに
不定値のまま放置するのは阿呆のすることです。
0212デフォルトの名無しさん2007/09/24(月) 18:46:18
>>209
コンパイラ通してないけど、ぱっと見で見つけたエラー。
>cin >> base >> endl;
std::endlに何か入力させようとしてる…
>int pow(int base,int exponent);
>double sqrt(int base);
自分で関数内関数宣言?cmathをincludeしてるのに
0213デフォルトの名無しさん2007/09/24(月) 18:48:02
1] 授業単元:プログラミング
[2] 問題文:txtファイルdata.txtに
memo1.txt
memo2.txt
memo3.txt

と書かれているとする。
今main関数で、ファイルdata.txtの中身のファイル(memo*.txt)をぬきとる。
その中身のファイルを違う関数void functionに移してファイルオープンして
中身を表示せよ。
-----------
memo1.txtの中身は
2
4
5
memo2.txtの中身は
1
4
6
memo3.txtの中身は
4
5
とします。


[3] 環境
 LINUX
[4] 期限:はやければはやいほうがいいです。
[5] その他の制限:特になし
0214デフォルトの名無しさん2007/09/24(月) 18:51:37
>はやければはやいほうがいいです。
小学生?
0215デフォルトの名無しさん2007/09/24(月) 18:52:29
>>214
ファイルの中身のファイル?
0216デフォルトの名無しさん2007/09/24(月) 18:53:01
>>213
死ね。
0217デフォルトの名無しさん2007/09/24(月) 18:55:43
>>213 ここに直接書いてるのでコンパイルエラーとか知らない。
#include <stdio.h>
#include <string.h>
void function(char *filename)
{
  char command[1024];
  sprintf(command, "cat %s", filename);
  system(command);
}
int main(void)
{
  char filename[1001];
  FILE* fp = fopen("data.txt", "r");
  if( fp == NULL ) { return 1; }
  while( !feof(fp) ) {
    int len;
    fgets(filename, 1000, fp);
    len = strlen(filename);
    while( filename[len - 1] == '\n' ) filename[len - 1] = '\0';
    printf("%sの中身は\n");
    function(filename);
  }
  return 0;
}
0218デフォルトの名無しさん2007/09/24(月) 18:56:37
あ。data.txt閉じ忘れた……けどまぁいいや。
0219デフォルトの名無しさん2007/09/24(月) 18:57:42
data.txtにかかれてあるのが
memo1.txt
memo2.txt
memo3.txt
で
memo1.txtにかかれてあるのが
2
4
5
で
memo2.txtにかかれてあるのが
1
4
6
で
memo3.txtにかかれてあるのが
4
5
という意味です
0220デフォルトの名無しさん2007/09/24(月) 19:00:32
>>217
cat使ったのを書こうと思ったらかぶったよw
0221デフォルトの名無しさん2007/09/24(月) 19:06:00
>>219
え?
0222デフォルトの名無しさん2007/09/24(月) 19:18:35
>data.txtにかかれてあるのが
         ̄ ̄ ̄ ̄ ̄ ̄
どこの国の方ですか?
0223デフォルトの名無しさん2007/09/24(月) 19:33:22
うんこ星人です
02241632007/09/24(月) 19:40:29
すいませんがまたチェックお願いします
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4961.txt
今度はエラー3とでましたが、、、
0225デフォルトの名無しさん2007/09/24(月) 19:50:42
Display呼び出し時の引数の数
pow(double, double)
0226デフォルトの名無しさん2007/09/24(月) 19:53:03
>>224
でたから何?

表示されたエラーを読めば解決する問題だよね?
02271852007/09/24(月) 20:13:14
>>163
>>185で俺レスしてんだけど、無視?
関数使って処理するのがお好みなのかな
0228デフォルトの名無しさん2007/09/24(月) 20:24:06
お前の糞コードなんていらねえってよw
02291632007/09/24(月) 20:32:21
>>185さん
無視なんてとんでもないです
ありがとうございますと言ったのは主に185さんに対してです
ただ全く習っていない解法でしたので、、、
ありがたく使わせてもらいます
0230デフォルトの名無しさん2007/09/24(月) 20:36:21
ほう、どう使うと言うのかね
02311852007/09/24(月) 20:51:31
糞コードですいませんでした。
私がわるかったです。
0232デフォルトの名無しさん2007/09/24(月) 20:56:54
つーか、>163の支離滅裂な英語からすると>163が日本語に訳すことも無意味ならば>163がありがたく使うことも無意味だ。
0233デフォルトの名無しさん2007/09/24(月) 21:00:04
これが馬鹿さか…
0234デフォルトの名無しさん2007/09/24(月) 21:04:05
>>224
宣言時>void Display(int result1,double result2,int base,int exponent);
使用時>Display(result1,result2);
引数の数が合ってないのが悪い。

「エラー3」とかではなくて、何行目にどういうエラーがあるのかということを
出力するはずだから、どうせならそれを書いてくれ。
0235デフォルトの名無しさん2007/09/24(月) 21:21:00
>>199
#include<stdio.h>

int main(void){
 int num;

 printf("=>");
 scanf("%d",&num);

 if(num == 19) printf("2 4 6 8 10 12 14 16 18\n");
 return 0;
}
問題文どおりならこうなる
0236デフォルトの名無しさん2007/09/24(月) 21:21:47
>>199
#include<stdio.h>

int main(void){
 int num;

 printf("=>");
 scanf("%d",&num);

 if(num == 19) printf("2 4 6 8 10 12 14 16 18\n");
 return 0;
}
問題文どおりならこうなる
0237デフォルトの名無しさん2007/09/24(月) 21:27:08
>>199
#include<stdio.h>

int main(void){
 int num;

 printf("=>");
 scanf("%d",&num);

 if(num == 19) printf("2 4 6 8 10 12 14 16 18\n");
 return 0;
}
問題文どおりならこうなる
0238デフォルトの名無しさん2007/09/24(月) 21:34:08
>>235-237
そこまでして書き込みたいのか。
0239デフォルトの名無しさん2007/09/24(月) 21:40:55
>>238
書き込めないと思ってたら100-200までを
表示した画面をブックマークしてた
0240デフォルトの名無しさん2007/09/24(月) 22:25:07
>>239
死ね。
0241デフォルトの名無しさん2007/09/24(月) 22:32:38
このスレ1人だけくそ基地外がいるな。
0242デフォルトの名無しさん2007/09/24(月) 22:37:35
オレのことか
0243デフォルトの名無しさん2007/09/24(月) 22:48:17
いや、俺のことだろ?
0244デフォルトの名無しさん2007/09/24(月) 23:05:55
>>224
というかわざわざCalcPower,CalcSquareRoot関数を作る必要がないだろ
0245デフォルトの名無しさん2007/09/25(火) 00:02:09
>>199は入力した数値以下の正の自然数の偶数を表示しろってことか?
0246デフォルトの名無しさん2007/09/25(火) 00:10:50
199はもう終わってるから
0247デフォルトの名無しさん2007/09/25(火) 00:11:42
なんすか、それ?お前はもう、終わっている みたいな。
0248デフォルトの名無しさん2007/09/25(火) 00:14:41
簡単な問題だから飛びつきたい気持ちはわかるが
他の人が回答済み
0249デフォルトの名無しさん2007/09/25(火) 00:23:04
それは分かっているんだよ。敢えて題意はそれで良いか、ただの疑問。
おまえもいちいちうるさいよ
0250デフォルトの名無しさん2007/09/25(火) 00:24:12
それも他の人が質問済み
0251デフォルトの名無しさん2007/09/25(火) 00:25:01
>>200,203-204
そこらへんも解決済み
0252デフォルトの名無しさん2007/09/25(火) 00:26:10
直後なのに見てないのかよ
0253デフォルトの名無しさん2007/09/25(火) 02:49:55
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク):
ある2つのファイルがある。
この時1つのファイルには次元nの2つの整数ベクトルが書き込まれている。
この2つのベクトルを読み出し、内積を計算した後、
結果をもう1つのファイルに書き込むプログラムを作成せよ。
読み込むファイル、書き込むファイルどちらもファイル名を
任意に(キーボードから)指定できるようにする。
※なお、任意の大きさnのデータを処理できるようにする。
また、nはファイルの最初に置かれ、スペースによって要素は区切られる。
ベクトル要素のアクセスにはポインタを用いる。
[3] 環境
 [3.1] OS: (WindowsXP)
 [3.2] コンパイラ名とバージョン: (gcc)
 [3.3] 言語: (C言語)
[4] 期限: ([07年9月26日] )
[5] その他の制限: なし

よろしくお願いします。
0254デフォルトの名無しさん2007/09/25(火) 03:20:59
>>253
>ある2つのファイルがある。
>この時1つのファイルには次元nの2つの整数ベクトルが書き込まれている。
これを用意してくれ
0255デフォルトの名無しさん2007/09/25(火) 03:36:52
一応ファイルフォーマットは提示されてるようだが?
適当に2つ条件にあうファイルを作ればいいんだろう?
0256デフォルトの名無しさん2007/09/25(火) 04:16:46
 _______
(___ ___)
   ∇
0257デフォルトの名無しさん2007/09/25(火) 04:37:20
>>253
n次元整数ベクトルってのが何だったか思い出せなかったので適当に書いてみた。

#include <stdio.h>
#include <stdlib.h>
int main(void){
FILE* fp; char filename[256];
int i, j, n, * vector[2], result = 0;
//ファイル読み込み
do{
printf("読み込むファイル?"); scanf("%s", filename);
}while((fp = fopen(filename, "r")) == NULL);
fscanf(fp, "%d", &n);{
for(i=0; i!=2; i++){
vector[i] = calloc(n, sizeof(int));
for(j=0; j!=n; j++)
fscanf(fp, "%d", (vector[i] + j));}
close(fp);}
//内積を求める
for(i=0; i!=n; i++) result += *(vector[0] + i) * *(vector[1] + i);
//ファイル書き込み
printf("書き込むファイル?"); scanf("%s", filename);
fp = fopen(filename, "w");
fprintf(fp, "%d", result);
close(fp); free(vector[1]); free(vector[0]);
return 0;}
02581632007/09/25(火) 06:06:24
皆さんの助言のおかげでようやく完成しました
ありがとうございました
一応コード貼っておきます
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4964.txt
おさわがせしてごめんなさい
0259デフォルトの名無しさん2007/09/25(火) 06:17:32
C言語
Windows
WZ EDITOR
gcc
for文,1次元変数,do-while文,if-else文,doubleなどは習いました。
期限:今日中

問題
2次方程式の開放プログラム:a,b,cをそれぞれ入力し、axの2乗+bx+c=0の2つの解を表示するプログラムです。
0260デフォルトの名無しさん2007/09/25(火) 06:28:21
>>259
他の質問者と同じ形式で書き込もうとは思わない?
0261デフォルトの名無しさん2007/09/25(火) 06:34:10
>>260
いちいちうるせーんだよ、答えもしないクズが
0262デフォルトの名無しさん2007/09/25(火) 06:39:09
>>259
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4965.c
0263デフォルトの名無しさん2007/09/25(火) 07:53:08
[1] 授業単元: C
[2] 問題文(含コード&リンク):
  main引数に格納されたtest.txt(ファイル名)を
  変更してtest.abc.txtとするコードを作成せよ。  
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 9/25
[5] その他の制限: なし


引数で得たファイル名の拡張子の前に「.abc」を入れるというものなのですが
うまく作成できません。よろしくお願いいたします。
0264デフォルトの名無しさん2007/09/25(火) 08:00:20
>>263
ファイルのリネームをしろってこと?
コピーを作れってこと?
0265デフォルトの名無しさん2007/09/25(火) 08:22:33
>>264
ファイルのコピーを作って
リネームしろってことだと思います。
0266デフォルトの名無しさん2007/09/25(火) 08:27:28
>>265
Cygwin?MinGW?
0267デフォルトの名無しさん2007/09/25(火) 08:29:16
>>266
すみません書き忘れでした
cygwinです
0268デフォルトの名無しさん2007/09/25(火) 08:33:16
>>263
複数拡張子(a.txt.bak) や拡張子無しはどうすれば?
0269デフォルトの名無しさん2007/09/25(火) 08:35:42
>>268
とくにその辺は指定がないので
気にしなくて(ないものと考えて)
良いと思われます
0270デフォルトの名無しさん2007/09/25(火) 08:41:06
>>263
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int c,char**v){
char com[256]="./tmp.bat ";
strcat(com,v[1]);
FILE*fp=fopen("tmp.bat","w");
fprintf(fp,"%s","cp %1 tmp\nren tmp %~n1.abc.%~x1");
fclose(fp);
system("chmod 744 tmp.bat");
system(com);
system("rm tmp.bat");
return 0;
}
0271デフォルトの名無しさん2007/09/25(火) 09:32:18
>>263
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4966.c
0272デフォルトの名無しさん2007/09/25(火) 09:35:48
>>263 ちょい訂正。拡張子は . 以下3文字まで対応、だと思う。それ以外は知らん。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4967.c
0273デフォルトの名無しさん2007/09/25(火) 09:40:50
あと、きんもぉ〜☆クソースなんで、あしからずw
0274デフォルトの名無しさん2007/09/25(火) 10:14:27
>>263
#include <stdio.h>
#include <string.h>
#include <assert.h>
int main(int argc, char **argv)
{
char outname[256];
char *dot;
if( argc != 2 ){
printf("Usage:%s filename",argv[0]);
return 1;
}
if( (dot = strrchr(argv[1], '.')) == NULL ){
strcpy( outname, argv[1]);
strcat( outname, ".abc" );
}else{
int i;
for( i=0 ; argv[1][i] != *dot ; i++){
outname[i] = argv[1][i];
}
outname[i] = '\0';
strcat(outname, ".abc");
strcat(outname, dot);
}
if( rename( argv[1], outname ) == -1){
perror("Error");
return 1;
}
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています