⑴ c語言文件的問題 第9題 fseek語句,最後那個2不是代表文件末尾嗎 為什麼還選a
個人認為答案是錯誤的,這種情況會出現文件空洞。
如果 offset 比文件的當前長度更大,下一個寫操作就會把文件「撐大(extend)」。這就是所謂的在文件里創造「空洞(hole)」。沒有被實際寫入文件的所有位元組由重復的 0 表示。空洞是否佔用硬碟空間是由文件系統(file system)決定的。
⑵ 我要寫一個把文件分成N份的C語言程序,求大神幫我看看哪錯了
打開文件失敗,則說明文件是不存在的!
檢查一下文件名是不是正確,方法過程:
win 運行 ,輸入cmd
cd e:\
dir file*
看一下結果,一般情況下,可能是文件名多了.txt,真正的文件名是:E:\\file.txt.txt
⑶ C語言,編譯無錯誤,組建時出現錯誤。
returning address of local variable or temporary
很明顯,返回了局部變數,運行肯定出錯呀。
double *extend(double *price,double *quantity)
{
static double amo[10];//靜態就可以了
int i;
for(i=1;i<=10;i++)
{
amo[i] = price[i] * quantity[i];
}
return amo;
}
⑷ C語言,求修正。
因為你的extend函數,只操作了首地址上的元素啊,所以只有第一組數據正確。
要不你改成這樣:
#include <stdio.h>
void extend(double *p,double *q,double *r,int n)
{
int i;
for( i=1;i<=n;i++)
{
*p++=*q++ * *r++;
}
}
void main()
{
int j;
double price[10];
double quantity[10];
double amount[10];
for(j=0;j<10;j++)
{
printf("Please input %d values of price.\n",j+1);
scanf("%lf",&price[j]);
printf("Please input %d values of quantity.\n",j+1);
scanf("%lf",&quantity[j]);
}
extend(amount,price,quantity,10);
printf("price\tquantity\tamount\t\n");
for(j=0;j<10;j++)
{
printf("%lf\t%lf\t%lf\n",price[j],quantity[j],amount[j]);
}
}
⑸ c語言中extend什麼意思
你說的是extern吧
⑹ C語言中的class函數有什麼用~
Class可以通過extend關鍵字實現繼承。super關鍵字表示父類的構造函數,用來新建父類的this對象。
子類須在constructor方法中調用super方法,這樣才能得到父類的this,否則會報錯。這是因為子類自己的this對象,必須先通過父類的構造函數完成塑造,得到與父類同樣的實例屬性和方法,然後再對其進行加工,加上子類自己的實例屬性和方法。
調用函數使用的例子
class A {
constructor() {
console.log(new.target.name);
}
}
class B extends A {
constructor() {
super();
}
}
new A() // A
new B() // B
(6)extendc語言擴展閱讀
實例屬性的新寫法
class IncreasingCounter {
constructor()
{
this._count = 0;
}
_count = 0; //_count定義在類的最頂層與上面的constructor()寫法等價
get value() {
console.log('Getting the current value!');
return this._count;
}
increment()
{
this._count++;
}
}
⑺ 關於C語言中變數在兩個.C文件中的調用問題
我有幾個方案,我經常在VC下使用,都沒問題,你試試:
方案1:在一個文件中定義全局變數「類型 tmp;」,注意是全局變數。另一個文件全局變數的位置使用「extend 類型 tmp;」。
方案2:把hal.c文件里的函數參數加一個指向tmp的指針,tmp在main中,在hal.c里的文件使用tmp時,把地址傳過去就行了。
例如:
mian()
{
char tmp;
.....
.....
}
function(&tmp;...;...);
...
}
在hal.c裡面
function(char *tmp;...;...)
{
....
}
這樣就行了
方案1、2都不用hal.h
方案3:你把hal.c的子函數寫進hal.h,在mian函數之前include一下就行了。
但不推薦此方法。
對你出現的問題的理解:
你在hal.h中聲明了tmp,在兩個文件里都包含它,表示包含了兩次,C語言規定如果沒有限定為局部變數,則各個文件都可以調用,這就導致你聲明了兩個名稱相同的同類型變數,當然不行。
如果定義為局部變數,那麼另一個文件就沒辦法用它了,或者這么說:兩個文件各有一個tmp但不是同一個tmp,改變一個的值,另一個不變。
常用方法就是extend一下(方案1)。
順便說一句,我從來沒用過unsigned char類型,因為char類型本身就是非負的,可能是因為編譯器的關系吧