求救c語言



贊助商連結


puice
2009-04-01, 01:41 AM
以下是我寫好的程式:程式內容就是由使用者輸入後排序大小
int main()
{

int array[10] , *p;
int i, j , tmp, size;
printf("Size:");

scanf("%d",&size);
printf("輸入數字:\n");

for(i=0;i<size;i++)
scanf("%d",&array[i]);
p = &array[0];


for(i=size-1;i>=0;i--){
for(j=0;j<=i;j++){
if(*(p+j) > *(p+j+1)){
tmp = *(p+j);
*(p+j) = *(p+j+1);
*(p+j+1) = tmp;
}
}
}
for(i=0;i<size;i++)
printf("%d ",array[i]);
system("pause");
return 0;
}
那現在想改用讀excel檔案的方式進來排序,要如何做修改與調整呢?
有請各位大大賜教,謝謝

贊助商連結


lenbo
2009-04-01, 02:11 AM
1. 要先會讀寫檔案的語法。
2. 要自己去查 excel 檔案的檔頭結構或看看已經有沒有讀取函式庫之類的…

puice
2009-04-01, 02:18 AM
FILE *fp1;
fp1=fopen("hw1.txt","r");

讀檔的部份,我查都只有寫到讀txt文字檔的部份。
想問的是C真的可以讀取xls嗎?(資料不是太好找捏0.0)

lenbo
2009-04-01, 09:16 AM
FILE *fp1;
fp1=fopen("hw1.txt","r");

讀檔的部份,我查都只有寫到讀txt文字檔的部份。
想問的是C真的可以讀取xls嗎?(資料不是太好找捏0.0)

應該要以二進位的方式來讀檔才可以。
(我寫過讀BMP圖檔的程式)

C當然可以讀取xls,只要M$有提供資料;
我是覺得應該已經有人寫好函式庫了,
找得到的話呼叫來用就可以讀了。

pete001
2009-04-02, 04:54 AM
小弟不確定讀 excel 檔案的意思是否包含 .csv? 或者一定要是 .xls, .xlsx?

如果可以接受 .csv 檔案的話, 可以用類似一般讀 ',' 分隔檔案的方式來讀寫.
如果一定要 .xls 檔案, 小弟僅知可以用 MS VC++ or C#.
不知道是否有 C 的 solution.

C/C++ 讀取 .csv 的範例很多.
MS VC++ 可以藉由 ODBC 或者 ADO.NET 把 Excel 檔案當作資料來讀取,
或者直接用 Excel 開啟那個檔案讀取資料.
也許可以參考以下的討論:
http://social.msdn.microsoft.com/Forums/en-US/vclanguage/thread/1220ca36-79fd-4a3e-8a29-3a3878756ee8/
http://www.codeguru.com/forum/archive/index.php/t-428320.html

per1
2009-04-06, 12:47 AM
ODBC吧..
.NET就別妄想了..
CLR並沒有包含對C語言的支持..

puice
2009-04-07, 07:15 PM
import java.io.*;

public class QQ {
public static void main(String[] args) {
try {
String[] std = new String[100];
int stdCount = 0;

//讀檔(C:\t2.csv)
String file = "C:\\t2.csv";
File name = new File(file);
if (name.exists()) {
BufferedReader input = new BufferedReader(new FileReader(name));
String str;
while ((str = input.readLine()) != null)
std[stdCount++] = str;
input.close();
}
System.out.println("讀取檔案: " + file);

//排序
String temp;
for (int i = 0; i < stdCount - 1; i++) {
for (int j = i + 1; j < stdCount; j++) {
if (std[i].compareTo(std[j]) > 0) {
temp = std[i];
std[i] = std[j];
std[j] = temp;
}
}
}
System.out.println("排序...");

}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
}

compiler一樣是過了,但結果沒有顯示我存在excel(現副檔為csv)的資料耶,
是哪邊要再做修正呢?
請各位先進指教