① C語言中int 和char怎麼讀
Char如果表示編程里的數據類型 應該是Character的縮寫 現在普遍讀的都是
/tʃɑː/ (恰)
但是 Varchar 卻不是哇恰,讀做
/'vɑːkə/(屋阿科兒)(屋發音很短)
Int是Integer是縮寫 讀作
/ɪnt/ (印提)
② 在C語言中,如何將EXCEL或者文檔中的數據讀入程序中
1 使用的命名空間為:using System.Data.OleDb;
2 連接資料庫的字元串為:
string myConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\
目錄.xls;Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\"";
*.xsl可以認為是資料庫了,HDR表示是否隱藏excel的第一行(因為第一行一般表示欄位名稱)
IMEX 參數,因為不同的模式代表著不同的讀寫行為:當IMEX=0 時為「匯出模式」,這個模式開啟的 Excel 檔案只能用來做「寫入」用途。
當 IMEX=1 時為「匯入模式」,這個模式開啟的 Excel 檔案只能用來做「讀取」用途。當 IMEX=2 時為「連結模式」,這個模式開啟的 Excel 檔案可同時支援「讀取」與「寫入」用途。
3.OleDbConnection myConnection = new OleDbConnection(myConn);
4.string mysqlstr = "SELECT f1,f2,f5 FROM [Sheet1$]";
//[Sheet1$]就是表格了,選取第1,2,5列,用Fn表示第n列5 OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(mySQLstr, myConnection);6 DataSet myDS = new DataSet();7 myDataAdapter.Fill(myDS, "[Sheet1$]");
//原理都跟讀取sql是一樣
DataTable dt = myConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
//把相關信息記錄到datatable中
string tbname = dt.Rows[0][2].ToString().Trim();
//讀取表名信息【注意】由於excel每個單元格內數據默認的格式為:varchar(255),因此讀取超過255的單元格內容是需要修改注冊表,這里提供修改方法:Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel]"TypeGuessRows"="0"表示從前TypeGuessRows行判斷數據的類型。
③ C語言里怎麼輸入和顯示中文字元
定義一個字元數組用來存放中文,注意長度喲
然後。。。你就輸入吧。。接著輸出就行,代碼給你扔下邊了
#include<stdio.h>
void
main()
{
char
s[10];
printf("請輸入字元串");
scanf("%s",s);
printf("輸出");
puts(s);
}
④ C語言,資料庫
嵌入SQL的基本特點是:
1、每條嵌入式SQL語句都用EXEC SQL開始,表明它是一條SQL語句。這也是告訴預編譯器在EXEC SQL和「;」之間是嵌入SQL語句。
2、如果一條嵌入式SQL語句佔用多行,在C程序中可以用續行符「\」,在Fortran中必須有續行符。其他語言也有相應規定。
3、每一條嵌入SQL語句都有結束符號,如:在C中是「;」。
4、嵌入SQL語句的關鍵字不區分大小寫。
5、可以使用「/*….*/」來添加註釋。
從上面這個例子看出,INFORMIX資料庫的嵌入SQL語句的格式同其他資料庫基本相同。但是,它也有它自己本身的一些特點。本節把重點放在INFORMIX資料庫所獨有的一些語句或處理方式。
5.2 宿主變數
宿主變數就是在嵌入式SQL語句中引用主語言說明的程序變數。如:
EXEC SQL connect to :hostvar;
1)、定義宿主變數
方法1:採用BEGIN DECLARE SECTION 和END DECLARE SECTION之間給主變數說明。如:
EXEC SQL BEGIN DECLARE SECTION;
char fname[ FNAME_LEN + 1 ];
char lname[ LNAME_LEN + 1 ];
EXEC SQL END DECLARE SECTION;
方法2:在每個變數的數據類型前加上「$」。如:
$int hostint;
$double hostdbl;
ESQL/C對宿主變數的大小寫敏感。但是,ESQL/C的關鍵字、語句標志符、游標名大小寫不敏感。在SQL語句中,除了使用「:」來標志宿主變數外,還可以使用「$」。當然,「:」是ANSI標准。如:EXEC SQL connect to $hostvar。對於注釋,可以使用「--」,也可以使用標準的「/*…*/」。
2)、宿主變數和NULL
方法1:使用指示符變數。
方法2:使用函數risnull()和rsetnull()。
3)、指示符變數
大多數程序設計語言(如C)都不支持NULL。所以對NULL的處理,一定要在SQL中完成。我們可以使用主機指示符變數來解決這個問題。在嵌入式SQL語句中,宿主變數和指示符變數共同規定一個單獨的SQL類型值。指示變數和前面宿主變數之間用一個空格相分隔。如:
EXEC SQL select lname, company
into :name INDICATOR :nameind, :comp INDICATOR :compind
nameind是name變數的指示符,而compind是comp變數的指示符。
可以通過以下三種方法使用指示符變數:
方法1、使用INDICATOR關鍵字。
:hostvar INDICATOR :indvar
方法2、
:hostvar :indvar
方法3、使用$符號。
$hostvar $indvar。
無論採用哪種方法,都是實現指示符變數的作用。即:當宿主變數hostvar應該返回NULL時,指示符變數為-1。當宿主變數hostvar應該返回不是NULL而且無需截斷時,指示符變數為0。當返回值太大而需要截斷時,指示符變數是截斷前數據的長度。SQLSTATE會返回01004錯誤信息。請看下面這個例子:
EXEC SQL BEGIN DECLARE SECTION;
char name[16];
char comp[20];
short nameind;
short compind;
EXEC SQL END DECLARE SECTION;
EXEC SQL select lname, company
into :name INDICATOR :nameind, :comp INDICATOR :compind
from customer
where customer_num = 105;
如果對應105的company為NULL,則compind小於0,如果lname的結果大於15個位元組,那麼name包含前15個字元。
4)、宿主變數的數據類型
INFROMIX ESQ/C的宿主變數數據類型除了標准C的數據類型外,可以是它自己定義的數據類型。如:
lvarchar數據類型
EXEC SQL BEGIN DECLARE SECTION;
varchar varc_name[n + 1];
EXEC SQL END DECLARE SECTION;
lint8數據類型
EXEC SQL BEGIN DECLARE SECTION;
int8 int8_var1;
ifx_int8_t int8_var2;
EXEC SQL BEGIN DECLARE SECTION;
lfixchar數據類型
EXEC SQL BEGIN DECLARE SECTION;
boolean flag;
fixchar my_boolflag;
int id;
EXEC SQL END DECLARE SECTION;
lDecimal數據類型
#define DECSIZE 16
struct decimal
{
short dec_exp;
short dec_pos;
short dec_ndgts;
char dec_dgts[DECSIZE];
};
typedef struct decimal dec_t;
lDatetime數據類型
EXEC SQL include datetime;
EXEC SQL BEGIN DECLARE SECTION;
datetime year; /* will cause an error */
datetime year to day year, today; /* ambiguous */
EXEC SQL END DECLARE SECTION;
lInterval hour等數據類型
EXEC SQL BEGIN DECLARE SECTION;
interval day(3) to day accrued_leave, leave_taken;
interval hour to second race_length;
interval scheled;
EXEC SQL END DECLARE SECTION;
l其他數據類型
EXEC SQL BEGIN DECLARE SECTION;
loc_t my_simple_lo;
EXEC SQL END DECLARE SECTION;
my_simole_lo.loc_loctype = LOCMEMORY;
l在INFORMIX資料庫中,'\0'表示為NULL。如:
id = 1;
flag = '\0'; /* valid boolean assignment to FALSE */
EXEC SQL insert into table2 values (:id, :flag); /* inserts FALSE */
在以SQL為基礎的DBMS支持的數據類型與程序設計語言支持的數據類型之間有很大差別。如果你通過宿主變數從資料庫取值,或者通過宿主變數向資料庫插入值,都存在數據類型轉換的問題。